在将要发布到npm的js包中加入Typescript类型的正确方法是什么?



我有3个NodeJS包,其中2个稍后将发布到npm,并且是在javascript中,我希望它们包含类型。我该怎么做呢?

我有一个库common,一个user-facing和一个样本。样品取决于user-facing,而样品取决于common

我已经为每个包中的每个.js文件创建了类型文件,我在package.json中为每个包包含了"typings"指令,指定了主类型文件。

但是当我尝试编译我的示例tsc正确地找到user-facing的类型时,但随后抱怨它无法在试图导入commonuser-facing的文件中找到进一步的类型。

如何在本地运行示例而不事先将类型发布到注册表?

您不应该为您创建的库将内容发布到类型注册表中。它们可以携带自己的类型。typings注册表用于为其他人创建的库创建类型。

你想在package.json中包含一个typings元素

例子

"typings": "./yourentry.d.ts",

然后让构建生成键入。d。ts文件

在你的tsconfig中:

{ "compilerOptions": {, "declaration": true,

这样做将允许tsc和vscode找到它,当消费者进行npm安装时,它将只在编译时间和智能感知下工作。

没关系,我在"typings"指令中有一个错别字。执行npm link来"安装"依赖的软件包就足够了。

最新更新