我有一个简单的界面定义为:
export interface ISnapShot {
val: () => any;
key: string;
forEach: (child: ISnapShot) => boolean;
}
但是当我尝试在这里实现forEach
方法时:
export function snapshotToOrderedArray<T = IDictionary>(
snap: ISnapShot,
idProp = 'id'
): T[] {
const output: T[] = [];
snap.forEach((child: ISnapShot) => {
const obj: any = child.val();
const key: string = child.key;
if (typeof obj !== 'object' ) {
throw new Error(`Can't create a list from scalar values: "${obj}" | "${key}"`);
}
output.push( { ...{[idProp]: key }, ...obj } );
return true;
});
return output as T[];
}
我收到此错误:
[TS] 类型的参数&#39;(child:ISnapShot)=&gt;布尔&#39;不能分配给类型&#39; ISnapShot&#39;的参数。 物业&#39; val&#39;类型&#39;(child:ISnapShot)=&gt;布尔&#39;
不确定该错误的原因。 ISnapShot
界面清楚地表明存在val
属性。我做错了什么?