c# - 使用多重接口继承时的 Typescript 名称冲突/碰撞
如果在 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
TypeScript 使用结构化类型系统,所以 IFace1 和 IFace2 完全没有区别。你可以这样实现它们:
class SomeClass implements IFace1, IFace2 {
name = 'foo';
}
正如 vcsjones 所提到的,因为没有运行时类型信息,因此在名义上没有可行的方法使其工作。
