2017-04-19 20 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) { 
相關問題