为什么Typescript中的抽象类实现和接口必须实现接口中的所有方法
问题描述:
interface baseInter{
name : string;
test();
}
abstract class abs implements baseInter{
}
在TS编译器中抱怨类错误地实现了接口。 在abs型中缺少名称。为什么Typescript中的抽象类实现和接口必须实现接口中的所有方法
这里的abs是一个抽象类,所以我们为什么需要实现那里的接口?
答
你需要重新编写所有的接口成员/方法和abstract
关键字在你的情况下加入到他们,所以:
interface baseInter {
name: string;
test();
}
abstract class abs implements baseInter {
abstract name: string;
abstract test();
}
有人建议它:Missing property declaration in abstract class implementing interfaces,但被拒绝了这个原因:
虽然不写声明的便利将 很好,这种变化可能导致的混淆/复杂性 不能保证。通过检查声明,不清楚哪些成员出现在该类型上,是否具有呼叫特征的所有属性,方法或 属性;他们会被认为是抽象的吗? 可选?