我有接口,实现此接口的基抽象类以及创建基类的新实例的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