我试图键入一个包含包含函数数组的对象的数组。 TypeScript给出错误:TS2339:Property' push'类型' {name?:(()=> void)[]; }'
_observerCallbacks对象应如下所示:
{
main: [function1..., function2...],
second: [function1..., function2...]
}
这就是我的代码。
export class LoadingTracker {
private _observerCallbacks: { name?: { (): void; }[] }[] = [];
registerObserverCallback(callback, name): void {
if (typeof this._observerCallbacks[name] === 'undefined') this._observerCallbacks[name] = [];
this._observerCallbacks[name].push(callback);
}
notifyObservers(): void {
this._observerCallbacks.forEach((callback: { (): void; }): void => {
callback();
});
}
}
我无法弄清楚我哪里出错了。
答案 0 :(得分:0)
使用index signature。我认为你有意这样做:
@RabbitListener
答案 1 :(得分:0)
看起来这只是一种类型错误。您的_observerCallbacks应该具有以下类型:
private _obeservableCallbacks: { name: [(): void] }
这是一个将字符串映射到函数列表的字典。