为我的反应打字稿组件库生成/维护打字稿定义文件
Posted
技术标签:
【中文标题】为我的反应打字稿组件库生成/维护打字稿定义文件【英文标题】:Generating/Maintaining a typescript definition file for my react typescript component library 【发布时间】:2017-01-22 04:27:31 【问题描述】:我正在用 typescript 构建一个 react 库,我想为这个库的使用者提供一个 typescript 定义文件。
如何确保 typescript 定义文件始终正确并匹配 js 代码?
或者如果我的组件是用 typescript 编写的,有没有办法从编译器为我生成的所有生成的 d.ts 文件生成单个 d.ts 文件?
【问题讨论】:
【参考方案1】:如果您是该库的作者,则提供和维护定义非常容易。无论您使用什么库(例如 React),它的工作方式都是相同的。
1。创建.d.ts
文件
您可以通过将 -d
传递给编译器参数或在 tsconfig.json
中添加 declaration: true
来创建 .d.ts
文件。
2。将定义添加到package.json
将名为 typings
的字段添加到您的 project.json
,例如"typings": "./index.d.ts"
(如果typings
被省略,./index.d.ts
实际上是默认值)。
如果用户通过 NPM 安装您的库,TypeScript 编译器将自动使用提供的类型。
更多信息:Writing Declaration FilesTypings for NPM packages
【讨论】:
谢谢,但指定 decleration: true 标志会为每个文件创建一个定义文件,而不是单个 index.d.ts 如果需要拼接.d.ts
文件,可以使用github.com/SitePen/dts-generator
我查看了项目github.com/DefinitelyTyped/DefinitelyTyped/tree/master/… 作者是否为每个组件手动创建类型?或者他们是否使用了自动工具?我想为我编写的所有 react typescript 组件公开一个类型定义。
如果你在 NPM 模块本身中包含你的类型,每个人都可以自动使用它。绝对类型存储库包含不包含它们的 JS 模块的外部类型。
我需要制作一个 d.ts 文件还是只发布多个 tsx 文件就足够了?【参考方案2】:
这里提到:https://***.com/a/65629179/10606346
使用 React 开箱即用的 .d.ts
文件的最简单方法是将其放入 src
文件夹并将其命名为 global.d.ts
,例如:
src/global.d.ts
【讨论】:
以上是关于为我的反应打字稿组件库生成/维护打字稿定义文件的主要内容,如果未能解决你的问题,请参考以下文章