标签: typescript
您可以为方法设置专门的重载签名,但不能为属性设置,为什么会这样?
//ok interface Test { method(foo : string); method(foo : "bar"); } //error interface Test2 { propertyFoo : string; propertyFoo : "bar"; }
http://www.typescriptlang.org/Playground
答案 0 :(得分:2)
对版本类型的支持在1.4版本的Typescript roadmap上。有关讨论,请参阅ticket,但它允许以如下方式声明属性:
interface Test2 { propertyFoo : string | number; }
过载"过载"是否有意义。像你的例子中的一个属性," bar"已经是一个字符串。对于函数,返回类型可能根据具体参数而有所不同,因此重载对于更好的类型安全性有用。代码完成。对于房产类型没有这样的好处。