为什么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(); 
} 

code in playground

有人建议它:Missing property declaration in abstract class implementing interfaces,但被拒绝了这个原因:

虽然不写声明的便利将 很好,这种变化可能导致的混淆/复杂性 不能保证。通过检查声明,不清楚哪些成员出现在该类型上,是否具有呼叫特征的所有属性,方法或 属性;他们会被认为是抽象的吗? 可选?