如何从 TypeScript 文件生成类型定义文件?
How to generate type definition file from TypeScript files?
我用 TypeScript 制作了一些 类 和模块。其他 TypeScript 应用程序可以直接使用 TS 文件而无需类型定义。但是,要发布到 npm,我想我需要同时发布 JS 文件和类型定义文件。我认为手工制作 d.ts 文件可能很浪费,所以如何从 TypeScript 文件生成类型定义文件?
简答
将 "declaration": true
添加到您的 tsconfig 以生成 *.d.ts 文件以及 *.js 文件
长答案
要将 *.js 和 *.d.ts 文件发布到 npm 但不发布到 github(通常你只想在源代码管理中保留源代码)你需要做几件事:
- 将
"declaration": true
添加到 tsconfig
- 将
"outDir": "dist"
添加到 tsconfig
- 将 dist 添加到 .gitignore
- 像 .gitignore 一样添加 .npmignore 但没有 dist
- 在package.json中添加
"main": "dist/index.js"
(注意"js"后缀和dist目录)
- 在package.json中添加
"types": "dist/index.d.ts"
(注意这次的"ts"后缀和dist目录)
(您的文件名和目录当然可能会有所不同,以上假设您的分发目录是 dist
并且您的主要入口点是 index.ts
)
这没有配置构建脚本,只是发布您需要的最低限度,以便其他 Node 模块和程序可以要求您的模块同时使用 JavaScript 和 TypeScript,而无需将生成的文件置于源代码控制之下.
有关详细信息,请参阅:
这是我在准备关于 Deno 的演讲时写的一个答案 (slides, video) 试图描述将用 TypeScript 编写的 Node 模块发布到 npm 的整个过程,这正是你在这里所做的,所以也许您会发现更多有用的信息,不仅涉及生成 .d.ts 文件,还涉及其他相关内容。
我用 TypeScript 制作了一些 类 和模块。其他 TypeScript 应用程序可以直接使用 TS 文件而无需类型定义。但是,要发布到 npm,我想我需要同时发布 JS 文件和类型定义文件。我认为手工制作 d.ts 文件可能很浪费,所以如何从 TypeScript 文件生成类型定义文件?
简答
将 "declaration": true
添加到您的 tsconfig 以生成 *.d.ts 文件以及 *.js 文件
长答案
要将 *.js 和 *.d.ts 文件发布到 npm 但不发布到 github(通常你只想在源代码管理中保留源代码)你需要做几件事:
- 将
"declaration": true
添加到 tsconfig - 将
"outDir": "dist"
添加到 tsconfig - 将 dist 添加到 .gitignore
- 像 .gitignore 一样添加 .npmignore 但没有 dist
- 在package.json中添加
"main": "dist/index.js"
(注意"js"后缀和dist目录) - 在package.json中添加
"types": "dist/index.d.ts"
(注意这次的"ts"后缀和dist目录)
(您的文件名和目录当然可能会有所不同,以上假设您的分发目录是 dist
并且您的主要入口点是 index.ts
)
这没有配置构建脚本,只是发布您需要的最低限度,以便其他 Node 模块和程序可以要求您的模块同时使用 JavaScript 和 TypeScript,而无需将生成的文件置于源代码控制之下.
有关详细信息,请参阅:
这是我在准备关于 Deno 的演讲时写的一个答案 (slides, video) 试图描述将用 TypeScript 编写的 Node 模块发布到 npm 的整个过程,这正是你在这里所做的,所以也许您会发现更多有用的信息,不仅涉及生成 .d.ts 文件,还涉及其他相关内容。