2013-12-16 266 views
0

如果在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#的类型信息,但什么?

+1

TypeScript无法支持此操作,因为接口是纯粹的编译时机制。由此产生的JavaScript没有界面的概念,界面被删除。鉴于此,您的预期行为会使这项工作成为现实? – vcsjones

回答

3

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

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

正如vcsjones提到的,因为没有运行时类型信息,有没有一个合理的方式,其中,这可能象征性的基础上工作。

+0

是的,我认为这将是这种情况。但如何处理呢?这是一个现实世界的问题。我会创建另一个问题(正如这个问题完全回答),描述问题并要求如何解决这些问题;) – Dyna