0
:타이프 라이터 일반적인 기본 클래스 I는 일반적인 기본 이벤트 클래스를 만들려고하고
class ExtraSpecialEvent
extends BaseEvent<{ (foo: string): void }> {
}
:
class BaseEvent<T extends { (args?: any[]): void }> {
addEventListener(listener: T): {(): void } {
return() => { };
}
}
내가 지정하는 확장 할 수있는을 콜백의 매개 변수를 제한
하지만 구문을 이해하는 것 같습니다. Here is a playground demonstrating my problem.
어떤 방법을 생각 하나?
---- UPDATE ---- @ 무라트을-K 아래 대답
으로,이 내 질문이 요구하시는 동안 내 일반이는 내가 의미하지 무슨 ... 배열을 요구한다. 내 의도는 0 개 이상의 any
args 허용하는 것입니다. 당신은 배열 형식으로 args
선언하는
class BaseEvent<T extends { (...args: any[]): void }> {
addEventListener(listener: T): {(): void } {
return() => { };
}
}
네, 맞습니다. 나는 이것을 답으로 표시 할 것이다 ... 비록 그것이 틀린 질문을하고있는 것으로 판명되었지만 ... 나는 0 개 이상의 args를 지정하는 능력을 정말로 원했다 ...이 대답은 나를 올바른 길로 보내었다. – Lucas
@ 루카스 당신은'...'rest 매개 변수를 사용할 수 있습니다. 예를 보려면 http://stackoverflow.com/questions/12697275/open-ended-function-arguments-with-typescript를 참조하십시오. –