node.js - 声明一个实现接口(interface)的函数

标签 node.js typescript typescript2.0

我在手动创建的 .d.ts 文件中有此 TypeScript 代码:

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

我希望所有 TBeforeHook 类型都扩展/实现 IBeforeHook 接口(interface)...我该怎么做?

我想做这样的事情:

export type TBeforeHook extends TBeforeHookTemp implements IBeforeHook {

}

但这不起作用。

最佳答案

您可以定义intersection type :

export type TBeforeHook = TBeforeHookTemp & IBeforeHook;

关于node.js - 声明一个实现接口(interface)的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44583758/

相关文章:

javascript - 使用 Service 从 JSON 读取特定 key

node.js - 解决 Webpack + Typescript 中与 Node 依赖库的类型冲突

javascript - Express.js 在两个实例之间签署了 cookie

javascript - Windows Azure IIS 上的 Node.js 使用 IISNode : How to set startup file?

javascript - 为什么我的代码返回 React Type Error?

javascript - 使用 Angular 6 从 JSON 加载动态表单

angular - 使用 Visual Studio 构建 Angular2 应用程序时出错

angular - 按每个单词的第一个字母过滤包含元素的数组

node.js - 使用自定义 header 测试 NodeJS socket.io

javascript - Mongoose:CastError:模型 ""的路径 "_id"处的值 ""转换为 ObjectId 失败