如何从 TypeScript 文件生成类型定义文件?

ZZZ*_*ZZZ 4 javascript npm typescript typescript-definitions

我在 TypeScript 中制作了一些类和模块。其他 TypeScript 应用程序可以直接使用 TS 文件,而无需类型定义。但是,要发布到 npm,我想我需要同时发布 JS 文件和类型定义文件。我认为手工制作 d.ts 文件可能很浪费,那么如何从 TypeScript 文件生成类型定义文件?

rsp*_*rsp 8

简答

添加"declaration": true到您的 tsconfig 以生成 *.d.ts 文件和 *.js 文件

长答案

要将 *.js 和 *.d.ts 文件发布到 npm 但不发布到 github(通常您只想在源代码管理中保留源代码),您需要做几件事:

  1. 添加"declaration": true到 tsconfig
  2. 添加"outDir": "dist"到 tsconfig
  3. 将 dist 添加到 .gitignore
  4. 添加 .npmignore 像 .gitignore 但没有 dist
  5. "main": "dist/index.js"在package.json中添加(注意“js”后缀和dist目录)
  6. 加入"types": "dist/index.d.ts"package.json(注意这次是“ts”后缀和dist目录)

(当然,您的文件名和目录可能会有所不同,以上假设您的分发目录是dist并且您的主要入口点是index.ts

这无需配置构建脚本,只需发布​​您需要的内容,以便其他 Node 模块和程序可以使用 JavaScript 和 TypeScript 来要求您的模块,而无需将生成的文件置于源代码控制之下。

有关更多详细信息,请参阅:

这是我在准备关于 Deno 的演讲(幻灯片视频)时写的一个答案,试图描述将用 TypeScript 编写的 Node 模块发布到 npm 的整个过程,这正是你在这里所做的,所以也许你会找到更多有用的信息不仅是关于生成 .d.ts 文件,还有其他相关的事情。