c# - 使用多接口(interface)继承的 typescript 名称冲突/冲突

标签 c# javascript typescript ecmascript-5

如果在 Typescript 中我有两个接口(interface),它们都有同名的成员,我如何安全地实现这两个接口(interface)?这可能吗?

示例:

interface IFace1 {
    name: string;
}
interface IFace2 {
    name: string;
}

class SomeClass extends IFace1, IFace2 {
    // How to implement IFace1.name and IFace2.name ??
}

我知道在 C# 中,由于 C# 在运行时的类型信息,这个问题可以得到解决并且有效,但是 Typescript 呢?

最佳答案

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

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

正如 vcsjones 提到的,由于没有运行时类型信息,因此没有一种合理的方式可以在名义上发挥作用。

关于c# - 使用多接口(interface)继承的 typescript 名称冲突/冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20619894/

相关文章:

c# - 为什么在不涉及逻辑时使用属性?

javascript - 如何从 3rd 方库访问 Angular 组件

typescript - 如何使用递归条件类型将类型(任意长度)的元组映射到嵌套类型

javascript - 加载器 requireJs 不尊重依赖关系

javascript - 使用 underscore.js 加载模板时再次调用 document.ready

typescript - 如何使用 Typescript 在函数中包含输出参数?

C# AND 赋值运算符 (&=) 与按位枚举

c# - 在实现通用接口(interface)的动态对象上调用方法

c# - 微软是否更改了随机默认种子?

javascript - 如何禁用 ACE 编辑器的查找对话框