我有接口,實現此接口的基抽象類以及創建基類的新實例的Angular組件中的一些屬性。這種結構不給我的錯誤在瀏覽器中(也許是因爲它是經得起任何的JS),但我得到了TSLint錯誤在Typescript中擴展抽象類
TS2511:無法創建抽象類的實例KitCustomizationBase
如果我刪除abstract
字,該錯誤消失。
正如我在TS文檔中看到的抽象類可能包含一些實現的邏輯。
有人可以解釋它嗎?
我的界面:
export interface KitCustomizationInterface {
items: number[];
indexes: number[];
counter: number;
}
我的基類(我越來越沒有構造相同的錯誤):
import { KitCustomizationInterface } from '...';
export abstract class KitCustomizationBase implements KitCustomizationInterface {
public items: number[];
public indexes: number[];
public counter: number;
constructor(items: number[], indexes: number[], counter: number) {
this.items = items;
this.indexes = indexes;
this.counter = counter;
}
}
而且從我的組件代碼:
...
let k: KitCustomizationBase = new KitCustomizationBase([], [], 0);
...
重複標記的注意事項:
1. Angular擁有(因爲TS)不同的時刻abo與接口一起工作。
2.此外,我們正在討論在Google搜索中沒有結果的特定TSLint錯誤。
3.複製標記給出的鏈接沒有提供明確的答案。這更像是一個答案「去閱讀文檔」。有關具體內容的文檔?我問了具體的錯誤,我得到了答案,謝謝大家的幫助。
你不能'new'抽象類,這是'abstract'的主要觀點。我也沒有看到你擴展抽象類。 –
[Interface vs Abstract Class(general OO)]的可能重複](https://stackoverflow.com/questions/761194/interface-vs-abstract-class-general-oo) –
只有通過擴展然後創建新實例? – WeekendMan