2013-12-16 3 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 사이에는 전혀 차이가 없습니다. 이처럼 그들을 구현하는 것이 : vcsjones으로

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

이이 명목 기준으로 일할 수있는 그럴듯한 방법이 아니라, 어떤 런타임 타입 정보가 없기 때문에, 언급했다.

+0

예, 이것이 사실이라고 생각했습니다. 그런데 어떻게 대처해야할까요? 현실 세계의 문제입니다. 문제를 설명하고 문제를 해결하는 방법을 묻는 또 다른 질문을 만듭니다 (이 답변에 완벽하게 답변 됨).) – Dyna