Я использую превосходную библиотеку Basarats Collections, немного обновленную для создания типов 0.9.0, таких как:
Dictionary<ControlEventType,
Dictionary<number, (sender: IControl,
eventType: ControlEventType,
order: ControlEventOrder,
data: any) => void >>
Теперь я не хочу писать это полностью каждый раз, когда я его использую. Один из подходов, который, похоже, работает:
export class MapEventType2Handler extends C.Dictionary<ControlEventType,
C.Dictionary<number,
(sender: IControl,
eventType: ControlEventType,
order: ControlEventOrder,
data: any) => void >> {}
Затем я могу написать:
EH2: MapEventType2Handler = new MapEventType2Handler();
вместо:
EH: Dictionary<ControlEventType,
Dictionary<number,
(sender: IControl,
eventType: ControlEventType,
order: ControlEventOrder,
data: any) => void >>;
Кто-нибудь сталкивается с лучшими идеями?
Я также экспериментирую с 'typedeffing' различными сигнатурами функций без больших результатов.