이상한 제목에 대해 유감스럽게 생각합니다. 한 문장으로 무엇을 하려는지 설명하는 방법을 알지 못합니다.클래스 데코레이터, 클래스가 확장되고 다른 클래스를 구현하는지 확인하는 방법
나는 하나의 클래스에서 확장되어이 다른 클래스를 구현할 클래스를 정의해야합니다.
class SoulCoughing extends Super implements BonBon { /.../ }
class MoveAside extends Super implements BonBon { /.../ }
class LetTheManGoThru extends Super implements BonBon { /.../ }
나는 이러한 클래스의 데코레이터로 사용하는 일종의 래퍼 기능을 작성했습니다.
const Eminem = function(klass: Constructable<????>) {
const instance = new klass();
// Do stuff
}
Constructable
그렇지 않으면 타이프 라이터가 생성자를 가지고 있지 대한 오류가 발생 때문에 내가 사용하고 약간의 인터페이스입니다.
interface Constructable<T> {
new(): T;
}
지금 여기 내 문제, 내 래퍼 함수에서 klass
를 파라미터에 할당 유형을 몰라? 나는이 일을 시도했다 :
... function(klass: Contrusctable<Super & BonBon>)
이를 :
interface Constructable<T, U> {
new(): T & U;
}
... function(klass: Contrusctable<Super, BonBon>)
하지만 내가 Argument of type 'typeof SoulCoughing' is not assignable to parameter of type 'Constructable<everythingIveTriedSoFar>'
오류가 계속 : 나는이처럼 내 constructable 인터페이스를 수정하려고
... function(klass: Contrusctable<Super | BonBon>)
.
제 질문은 어떤 유형 정의를 klass
매개 변수와 함께 사용해야합니까? 나는 단지 any
을 사용할 수 있지만 실제로 전달되는 클래스가 Super
을 확장하고 BonBon
을 구현했는지 확인하고 싶습니다.