2016-10-27 5 views
1

내가 변수가 있다고 가정하자 :하나의 변수에 여러 인터페이스를 사용할 수 있습니까?

var product:Product; 

var에 제품이 제품 인터페이스를 사용을하지만, 나는 제품이 숨겨진해야하는 경우 내보기에 알고 일반적인 특성 '숨기기'를 추가하고 싶습니다. 제품 인터페이스에 '숨기기'를 추가 할 수는 있지만 제품 모델의 속성이 아니기 때문에 제대로 된 느낌이 들지 않습니다.

내가 두 속성을 가지고 제품을 확장하는 특별한 인터페이스를 만들 수 있지만이 작업을 수행하는 더 simpel 방법은, 같은이 있는지 궁금 해요 : 같은 구문은

var product:Product & Hide; 

있습니까?

답변

2

네, 정확히 맞아 그것은 Intersection Types.

그래서 중 하나라고 :

interface Hidden { 
    hide: boolean; 
} 

let product: Product & Hidden; 

또는

let product: Product & { hide: boolean } 
+0

감사합니다! 내 IDE는 오류를 표시하지만 tslint는 그렇지 않으므로 IDE를 업데이트/전환해야합니다. – driedoezoe

+0

어떤 IDE입니까? 오류가 무엇입니까? IDE에서 사용하는 타이프 스크립트 버전은 무엇입니까? –

+0

나는 phpstorm을 사용하지만 솔직히 말해서 나는 어떤 타이프 스크립트를 사용하는지 전혀 모른다. 오류 : 그것은 성명을 기대하기 때문에 교차로 유형에 대해 알지 못합니다. 지금 당장은 원래의 대답에 만족하지만 IDE 오류에 대한 해결책이 있다면 알려주십시오;) – driedoezoe

관련 문제