【问题标题】: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 文件?

【问题讨论】:

    标签: reactjs typescript


    【解决方案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 Files
    Typings 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://stackoverflow.com/a/65629179/10606346

    使用 React 开箱即用的 .d.ts 文件的最简单方法是将其放入 src 文件夹并将其命名为 global.d.ts,例如:

    src/global.d.ts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-10
      • 2017-02-20
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 2022-11-02
      • 2018-03-04
      • 2019-07-11
      相关资源
      最近更新 更多