2013-09-24 4 views
3

배열의 각 항목에 isChecked 녹아웃 관측 가능 속성을 추가하여 체크리스트를 만드는 유틸리티 함수를 만들고 싶습니다. 이 기능은 다음과 같아야합니다 : 나는 CheckListItem<T>를 반환하고Typescript에서 일반 매개 변수 확장

createCheckList<T>(allEntities: T[], selected: T[]) : CheckListItem<T> { 
    ... 
} 

이 인터페이스는 isChecked 속성을 추가 T를 확장해야하기 때문이다. 그러나, 타이프 라이터 나이 작업을 수행 할 수 없습니다 :

interface CheckListItem<T> extends T { 
    isChecked: KnockoutObservable<boolean>; 
} 

나에게 오류 제공합니다 :

An interface may only extend another class or interface.

을이 작업을 수행 할 수있는 방법이 있습니까?

답변

1

TypeScript에서이를 표현할 방법이 없습니다.

당신은 분명히 대신이 작업을 수행 할 수 있습니다

interface CheckListItem<T> { 
    isChecked: KnockoutObservable<boolean>; 
    item: T; 
} 

이는 자신의 isChecked 속성이 일어나는 경우 개체를 파괴하지 않는 장점이있다.

+1

감사합니다. 그렇습니다, 나는 그것을 고려했다 그러나 오히려 서투른 IMHO이다. type-safety가 나에게 아무것도 사지 않는 녹아웃 바인딩을 위해서만 결과를 사용하기 때문에 대신 'any []'를 반환하는 것으로갔습니다. – Grokys