2017-02-10 1 views
1

하나의 기본 인터페이스를 확장하는 인터페이스 목록이 있습니다.typescript 인터페이스를 다른 인터페이스의 조합으로 생성

이러한 인터페이스를 수용 할 수있는 몇 가지 기능이 있습니다.

그 종류의 매개 변수를 설명하는 새 인터페이스를 만들고 싶습니다. 이 때문에

interface BasicInterface {...}; 

interface A extends BasicInterface {...}; 
interface B extends BasicInterface {...}; 

그리고 내가

function X(param1: A | B) {}; 

을 할 수

내 기능을 알고있는
interface C = A | B; 

같은 것을하고 싶지만 :

그래서 나는 이런 식으로 뭔가를 둘 이상의 함수 모두 하나의 인터페이스 만 갖고 싶습니다.

+0

X가 BasicInterface에 무엇이 더 필요합니까 :

나는 기능 내가 옳은 일을 액세스 할 형 가드를 사용에서 다음 type C = A | B;

같은 새로운 유형을 선언 할 수 있습니까? – toskv

+0

@toskv 예, 'BasicInterface'의 속성을 확인한 다음 모든 인터페이스의 특정 속성을 사용합니다. – rpadovani

+0

무엇이 문제입니까? 왜냐하면 당신은 쉽게 param 시그니처를 정의 할 수 있기 때문입니다. (사실 아주 좋은 아이디어라면 별개입니다.) – robkuz

답변

4

따라서 Typescript 문서를 조사한 후에 내가 찾고있는 것을 발견했습니다.

function isA(param: C): param is A { 
    return param.type === A; 
} 

function X(param1: C) { 
    if (isA(param1)) //things related to A 
    else //things related to B 
}; 
관련 문제