다른 클래스를 확장하고 인터페이스를 구현해야하는 제네릭을 포함하는 Typescript 클래스가 있습니다. 여기에 예제가있다Typescript 제네릭 확장 클래스 및 인터페이스
interface IHasImage {
imageUrl():string;
}
class Model {
}
class View<T extends Model & IHasImage> {
}
이것은 내가 다른 곳에서 본 구문 일 뿐이지 만 Typescript에서이 작업을 수행하는 방법은 무엇입니까?
편집 : 하여 놀이터에 다음 붙여보십시오 : http://www.typescriptlang.org/Playground
...[removed edit 1 code]
편집 2 : 응답 및 추론
(나는 첫 번째 예는 몇 가지 결함을했다, 사과!) 나는이 github 문제 (https://github.com/Microsoft/TypeScript/issues/1885)에서 개략적으로 설명한 것처럼 약간의 포인터가 필요할 지 모르지만 아래에서 정답을 표시했습니다.
다음 코드를 사용하면 방법론이 작동하는 것을 볼 수 있습니다.
말할 수있는 유일한 것은 implement
에 기본 클래스를 확장하지 않는 클래스에서 인터페이스를 시도하는 것도 실패입니다. 그러나 Typescript 검사 개체의 구조를 기반으로 있기 때문에 수동으로 클래스에 name
속성을 추가하면 성공합니다. 그것은 ModelCorrect
하는 extends
에 성공하지만 implements
하지 않는 이유
이
도있다.
예제에 버그가 있다고 생각합니다. 이 생성자의 일반 형식 값이 아닙니다.클래스는 모델을 가지고 있어야합니다 : T 속성 또는 생성자가 값을 받아 들일 수 있습니다 : T argument – Martijn