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

标签 javascript typescript npm typescript-definitions

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

最佳答案

简答

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

长答案

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

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

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

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

更多细节见:

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

关于javascript - 如何从 TypeScript 文件生成类型定义文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52325296/

相关文章:

typescript /ES6 : import src files with absolute path

typescript - 类型注释和类型推断有什么区别?

java - Gradle 无法执行 npm 命令

node.js - 安装 MEAN Stack : npm -v module. js: 338 throw err;错误:找不到模块 './cache/caching-client.js'

javascript - 如何在 JavaScript 中按顺序运行函数?

javascript - 当光标放在链接\图像上时显示图像(所有链接上显示相同的图像)

node.js - 从 Angular 发布到 Node。在 Node 上获取空体

javascript - 就绪状态多次改变

javascript - AWS认知: How to assign user to a user group when user signs up

node.js - 在macOS Sierra上,npm install odbc失败(版本10.12.6)