2017-04-19 1 views
0

Je ces quatre signatures de fonction différentes:Quatre signatures de fonction, avec un type encapsuler parent

type BeforeHookCallbackMode = (h: IBeforeHook) => void; 
type BeforeHookRegularMode = (h?: IBeforeHook) => Promise<any>; 
type BeforeHookObservableMode = (h?: IBeforeHook) => Observable<any>; 
type BeforeHookEEMode = (h?: IBeforeHook) => EventEmitter; 

Comment puis-je créer un type de parent, à partir de ces 4 types hériteront? Alors que je peux utiliser ce type de parent dans une signature de fonction, au lieu de faire:

function(fn : BeforeHookCallbackMode | BeforeHookRegularMode | BeforeHookObservableMode | BeforeHookEEMode) { 


} 
+0

les classes héritent, pas les types. –

+0

ok, je pense que je dois utiliser des interfaces, pas des classes pour cela –

Répondre

1

Vous n'êtes pas à la recherche d'un type « parent », mais un type « union ».

type BeforeHookMode = BeforeHookCallbackMode | 
    BeforeHookRegularMode | 
    BeforeHookObservableMode | 
    BeforeHookEEMode; 

function (fn: BeforeHookMode) {