Declare a function that implements the interface

I have this TypeScript code in a manually generated .d.ts file:

export interface IBeforeHook {
     foo: Function,
     bar: Function
}


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

type TBeforeHookTemp =
  BeforeHookCallbackMode |
  BeforeHookRegularMode |
  BeforeHookObservableMode |
  BeforeHookSubscriberMode |
  BeforeHookEEMode

      

I would like all TBeforeHook types to extend / implement the IBeforeHook interface ... how can I do this?

I want to do something like:

export type TBeforeHook extends TBeforeHookTemp implements IBeforeHook {

}

      

but it doesn't work.

+3


source to share


1 answer


You can define the type of intersection :



export type TBeforeHook = TBeforeHookTemp & IBeforeHook;

      

+3


source







All Articles