如果在Typescript中我有两个接口都有一个同名的成员,我怎么能安全地实现这两个接口?这甚至可能吗?
示例:
interface IFace1 {
name: string;
}
interface IFace2 {
name: string;
}
class SomeClass extends IFace1, IFace2 {
// How to implement IFace1.name and IFace2.name ??
}
我知道在C#中这可以解析并且因为C#在运行时的类型信息而起作用,但是那些关于Typescript的内容呢?
答案 0 :(得分:4)
TypeScript使用结构类型系统,因此IFace1
和IFace2
之间绝对没有区别。你会像这样实现它们:
class SomeClass implements IFace1, IFace2 {
name = 'foo';
}
正如vcsjones所提到的,因为没有运行时类型信息,所以没有一种合理的方式可以在名义上运作。