类型上不存在属性推送

时间:2016-05-06 19:39:21

标签: typescript

我试图键入一个包含包含函数数组的对象的数组。 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();
            });
        }
}

我无法弄清楚我哪里出错了。

2 个答案:

答案 0 :(得分:0)

使用index signature。我认为你有意这样做:

@RabbitListener

答案 1 :(得分:0)

看起来这只是一种类型错误。您的_observerCallbacks应该具有以下类型:

private _obeservableCallbacks: { name: [(): void] }

这是一个将字符串映射到函数列表的字典。

相关问题