0
我是新來的打字稿,我創建下面的問題類打字稿類的成員函數不能訪問
export class ModuleInfoContainer extends Array<ModuleInfo> {
constructor() {
super();
}
search(id: number) {
let k: ModuleInfo;
this.every(a => {
k = a.search(id);
return !k;
});
return k;
}
}
我希望它的工作的工作時間,但在調試時,所有的陣列功能是訪問,但成員函數search
的ModuleInfoContainer
無法訪問。然而 後幾個谷歌搜索我得到了一個例子,結束了這段代碼
export class ModuleInfoContainer extends Array<ModuleInfo> {
constructor() {
super();
}
search = function (id: number) {
let k: ModuleInfo;
this.every(a => {
k = a.search(id);
return !k;
});
return k;
};
}
和它工作正常。
第一個代碼有什麼問題?
編輯:ModuleInfo
類
export class ModuleInfo {
Id: number;
Name: string;
DisplayName: string;
ChildModules: ModuleInfoContainer;
DependsOn: ModuleInfo[];
parent: ModuleInfo;
search(id: number): ModuleInfo {
if (this.Id === id) {
return this;
} else if (this.ChildModules && this.ChildModules.length) {
return this.ChildModules.search(id);
}
return undefined;
}
}
這是我試圖調用此我搜索功能:
let k = new ModuleInfoContainer();
k.search(1);
打字稿成功編譯但在運行時出現錯誤,說k does not have a member function named search
(錯誤可能與chrome給出的錯誤不完全相同,但含義相同)。然而第二個代碼工作正常。
你好嗎?我只是做了一個遊樂場的例子,它工作正常。 – toskv
我使用這個代碼與角4,在鉻第一個只是說沒有找到功能搜索。當我嘗試調用類似 'let k = new ModuleInfoContainer(); k.search(1);'我沒有在任何其他瀏覽器上進行調試。 – goyaltushar92
你可以分享ModuleInfo類嗎? – hagner