【问题标题】:How to share Typescript Types between Projects?如何在项目之间共享 Typescript 类型?
【发布时间】:2018-11-22 01:26:43
【问题描述】:

我有两个项目(客户端和服务器)应该共享相同的定义。为了实现这一点,我在一个额外的 npm 包中外包了我的定义 (.d.ts),我通过 npm link 链接回这两个项目。两个主要项目都无法识别新 npm 包中的类型。我尝试了package.json (types) 设置和tsconfig.json (types, typeRoot) 中的一些设置的各种组合,但我没有找到正确的设置。

我必须在定义包和主包中设置什么才能使其正常工作?

【问题讨论】:

    标签: typescript typescript-types


    【解决方案1】:

    typestypeRoots 对我不起作用,我尝试了许多不同的路径/组合(尤其是在 typeRoots 中)。

    最后我添加了一行

    "include": [
        ...,
        "node_modules/<my-npm-package>/*.ts"
    ],
    

    在 tsconfig.json 中,我的外包类型在项目中可用。

    【讨论】:

      【解决方案2】:

      很遗憾,您没有提供足够的信息来推断问题所在。首先,如果你在 node_moudels 中使用index.d.ts,并放入你的 npm 包的根目录,typescript 应该会自动使用包中的类型,不需要额外的设置。

      但是,只有在键入 JavaScript 代码(编译代码)时,才能使用 index.d.ts 文件。如果您只想共享类型,请使用index.ts,然后在"typeRoots" 中包含共享类型所在文件夹的路径。

      【讨论】:

      • 感谢您的尝试。我找到了适合我的解决方案(请参阅我的答案)
      猜你喜欢
      • 2020-09-03
      • 1970-01-01
      • 2019-03-07
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      相关资源
      最近更新 更多