如何使用 TypeScript 导入自定义 node.js 插件模块

Posted

技术标签:

【中文标题】如何使用 TypeScript 导入自定义 node.js 插件模块【英文标题】:How to import a custom node.js addon module using TypeScript 【发布时间】:2016-12-17 01:09:35 【问题描述】:

我已经编写了一个自定义 Node.js 插件,但我想使用 typescript。我可以使用绑定在 javascript 中导入模块

const addon = require('bindings')('addon');

这将从 build/release/ 导入 addon.node

如何使用 TypeScript 做到这一点?是否允许插件导入?

【问题讨论】:

其实这就是你所需要的。这将起作用。但是,如果你想要代码完成,你应该创建 tsd 方案。 【参考方案1】:

您应该可以create a declaration file 为您的插件模块添加类型信息,然后在 TypeScript 中使用import it using a relative path。

有关外部模块声明文件的良好示例,请参阅DefinitelyTyped GitHub repository。该目录中一个简洁的好例子是declaration for the camelcase NPM nodule:

declare module "camelcase" 
    function camelcase(...args: string[]): string;
    namespace camelcase 
    export = camelcase;

【讨论】:

camelcase npm 模块的链接已损坏 我发现很难弄清楚的是如何将声明模块和一些打字稿包装器对象全部打包到插件模块项目文件夹中,然后通过'npm i -s .. .'.

以上是关于如何使用 TypeScript 导入自定义 node.js 插件模块的主要内容,如果未能解决你的问题,请参考以下文章

如何添加自定义 TypeScript 全局接口

如何在打字稿中正确导入自定义类型

JS lib的Typescript自定义类型,导入不起作用

Typescript自定义类型定义在导入类上中断

是否可以在 TypeScript 导入中指定 webpack 加载器?

如何导入***元素是非导出命名空间的 Typescript 类型定义文件?