Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 四个不同的函数签名,用一个父类型封装_Node.js_Typescript2.0_Typescript2.2 - Fatal编程技术网

Node.js 四个不同的函数签名,用一个父类型封装

Node.js 四个不同的函数签名,用一个父类型封装,node.js,typescript2.0,typescript2.2,Node.js,Typescript2.0,Typescript2.2,我有四个不同的函数签名: type BeforeHookCallbackMode = (h: IBeforeHook) => void; type BeforeHookRegularMode = (h?: IBeforeHook) => Promise<any>; type BeforeHookObservableMode = (h?: IBeforeHook) => Observable<any>; type BeforeHookEEMode = (h

我有四个不同的函数签名:

type BeforeHookCallbackMode = (h: IBeforeHook) => void;
type BeforeHookRegularMode = (h?: IBeforeHook) => Promise<any>;
type BeforeHookObservableMode = (h?: IBeforeHook) => Observable<any>;
type BeforeHookEEMode = (h?: IBeforeHook) => EventEmitter;
您要找的不是“父”类型,而是“联合”类型


类继承,而不是类型。好的,我想我必须使用接口,而不是类
function(fn : BeforeHookCallbackMode | BeforeHookRegularMode | BeforeHookObservableMode | BeforeHookEEMode) {


}
type BeforeHookMode = BeforeHookCallbackMode | 
  BeforeHookRegularMode | 
  BeforeHookObservableMode | 
  BeforeHookEEMode;

function (fn: BeforeHookMode) {