我有接口,实现此接口的基本抽象类和Angular组件中的一些属性,用于创建基类的新实例。这种结构不会给我浏览器中的错误(也许是因为它可以代表任何东西),但是我得到了TSLint错误
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);
...
重复标记的通知:
答案 0 :(得分:2)
你正在做的事情本身就是一个矛盾。将类标记为abstract
时,您明确禁止实例化。然后你去实例化你的课程。你必须下定决心。
abstract
。如果抽象类不允许其实例化的全部意图。