使用多个接口继承的Typescript名称冲突/碰撞

时间:2013-12-16 20:05:56

标签: c# javascript typescript ecmascript-5

如果在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的内容呢?

1 个答案:

答案 0 :(得分:4)

TypeScript使用结构类型系统,因此IFace1IFace2之间绝对没有区别。你会像这样实现它们:

class SomeClass implements IFace1, IFace2 {
    name = 'foo';
}

正如vcsjones所提到的,因为没有运行时类型信息,所以没有一种合理的方式可以在名义上运作。