【问题标题】:Creating and importing private package of hand-written type definitions创建和导入手写类型定义的私有包
【发布时间】:2020-12-28 10:01:02
【问题描述】:

我需要创建一个包含(仅)自定义类型定义(typedefs)的私有 npm 包。这些是不是由 TypeScript 生成的手写 d.ts 文件。由于这些是专有的,我无法将它们添加到 DefinedTyped。

文件夹结构:typings/mymodule/index.d.ts
index.d.ts 包含:declare module mymodule { ... }

该包保留了结构,因此在另一个项目中安装后,我有:
node_modules/@mycompany/mytypes/typings/mymodule/index.d.ts

不幸的是,现在我必须在另一个项目中编辑 tsconfig.json 才能添加:

    "include": [
      "node_modules/@mycompany/mytypes/typings"
    ],

或可选(更正确?)在compilerOptions下添加:

      "typeRoots": [
        "node_modules/@types",
        "node_modules/@mycompany/mytypes/typings"
      ]

之后,它就可以工作了——我可以在另一个项目中引用mymodule.SomeType

有没有一种方法可以让我在 npm install 上自动完成这项工作,而无需编辑 tsconfig 包含(也就是说,它的行为就像一个 DefinedTyped 包)?

如果有更正确的方法来做到这一点,那就是一个有效的答案。

我使用的是 TypeScript 3.6 或 3.7,具体取决于导入项目。

【问题讨论】:

    标签: node.js typescript npm tsconfig type-definition


    【解决方案1】:

    有没有办法让我在 npm install 上自动完成这项工作,而无需编辑 tsconfig 包含

    唯一使这项工作对 tsconfig.json 不进行任何更改的方法是,如果键入作为您尝试使用的模块的一部分提供。

    例如如果您write your package in TypeScript,此作为模块的一部分的运输将自动发生。

    【讨论】:

    • 你能澄清一下吗?所有包都是 TypeScript。本质上,我试图与多个 TypeScript 项目共享通用接口和类型。
    • 我尝试根据您的精彩视频创建一个包。我最终得到了带有接口和类型的 lib / index.d.ts 以及一个非常简单的 index.js。 TypeScript 如何知道在导入时自动包含这些类型?
    猜你喜欢
    • 2018-03-05
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 2015-10-20
    • 2020-01-04
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多