0
シグネチャをミスタイプすると、Typescriptコンパイラ(TSC)が怒って欲しいです。ルックアップタイプでTSCを怒らせる方法
export class EventEmitter<EventTypes extends { [key: string]: any }> {
subscribe<Event extends keyof EventTypes>(type: keyof EventTypes, fn: <T extends EventTypes[Event]>(value: T) => any) {
}
}
export class Data {
name: string;
}
export class Experiment extends EventEmitter<{ "next": Data, "end": Data[] }> {
}
new Experiment().subscribe("end", (v: Date) => {});
私が理解する限り、日付はデータ[]ではないので、tscは(v:Date)に不満があります。どうすればこれを達成できますか?