我有一个 DataHandler 服务,它调用数据库服务并将值返回给调用组件。数据库服务返回一个数组的可观察对象,而我希望数据处理程序返回一个可供组件使用的相同数组的信号。因此,我尝试使用 Angular 的 toSignal 函数,但当我将一个空数组设置为初始值时,我收到以下错误:
Type 'never[]' is not assignable to type 'undefined'.
据我了解,TypeScript 找不到空数组的类型,因此它尝试将数组的类型设置为上述类型never[]
。但是,我定义了两次该类型,在数据处理程序的函数调用中,返回类型定义为:
public readOverview(type: DataType): Observable<DataEntry[]> { ... }
因此返回的 Observable 类型是 DataEntry[]。这个类型也是我在数据处理程序中调用 toSignal 函数时专门设置的:
return toSignal<DataEntry[]>(this._dbFacade.readOverview(type), { initialValue: [] });
在我看来,TypeScript 应该能够找到空的初始数组的 DataEntry[] 类型。然而,它却找不到。那么,我该怎么做才能让它找到正确的类型,并能够使用空数组作为初始值呢?