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

时间:2018-09-14 05:08:01

标签: javascript typescript npm typescript-definitions

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

1 个答案:

答案 0 :(得分:1)

简短答案

"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. 在package.json中添加"main": "dist/index.js"(请注意“ js”后缀和dist目录)
  6. 在package.json中添加"types": "dist/index.d.ts"(注意,这次和dist目录都带有“ ts”后缀)

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

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

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

这是我在准备讨论Deno(slidesvideo)时写的答案,试图描述将用TypeScript编写的Node模块发布到npm的整个过程。这样做,也许您会发现不仅有用的有关生成.d.ts文件的信息,而且还有其他相关的信息。