标签: typescript interface
在主题中,为什么我需要在实现声明相同属性的接口的类中重新声明属性的类型?
我确定实现该接口的类将继承这些类型,但是似乎编译器仅检查是否存在所有指定的属性或方法。是Bug还是我误解了接口在Typescript中的工作方式?
例如:
1)一切都很好,但是类型必须声明两次
2)类型仅声明一次,导致类型any
3)当其他类型从数字更改为字符串时,打字稿会正确检查该类型。
我期待3),但令我惊讶的是2)显示的是any。 这种行为令我有些困惑,请您多加说明。谢谢您的帮助。
答案 0 :(得分:0)
实现接口不会继承类型。 here和here以及相关链接中对此进行了讨论;我花了几分钟的时间进行挖掘,但是找不到原始原因的简明陈述。无论如何,现在更改此行为将是一项重大更改。
一种解决方法是编写一个与类合并的接口(如果使用strictPropertyInitialization,则不建议这样做,因为这似乎绕过了它):
strictPropertyInitialization
interface Point extends IPoint {} class Point implements IPoint { ... }