如何在项目之间共享打字稿类型?

时间:2018-06-12 15:23:39

标签: typescript typescript-types

我有两个应该共享相同定义的项目(客户端和服务器)。为实现这一点,我将我的定义(.d.ts)外包给了一个额外的npm包,我通过npm link链接回两个项目。两个主要项目无法识别新npm包中的类型。我尝试了package.jsontypes)个设置以及tsconfig.jsontypestypeRoot)中的一些设置,但是我没有得到对了。

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

2 个答案:

答案 0 :(得分:3)

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

最后我添加了一行

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

和我的外包类型在项目中可用。

答案 1 :(得分:0)

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

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