2017-04-19 63 views
0

我有这四种不同的函数签名:四种不同的函数签名,封装与一个父类型

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

如何创建一个父类型,并由这4种继承?所以,我可以使用父类型的函数签名,而不是做:

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


} 
+0

类继承,而不是类型。 – 2017-04-19 18:41:53

+0

好吧,我想我必须使用接口,而不是类 –

回答

1

你不是寻找一个“父”类型,而是一个“联盟”型。

type BeforeHookMode = BeforeHookCallbackMode | 
    BeforeHookRegularMode | 
    BeforeHookObservableMode | 
    BeforeHookEEMode; 

function (fn: BeforeHookMode) { 
相关问题