将npm包与本地打字稿定义文件相关联

时间:2016-12-25 18:56:00

标签: typescript typescript2.0

我正在使用npm包(比如foo),在开发过程中,我想将此包与本地(与项目文件一起提交)的typescript定义文件相关联。我明确地不打算将定义文件作为npm包发布,因为截至目前它是不完整的,仅涵盖我实际使用的库的部分。

到目前为止,我已尝试过以下内容:

将以下内容添加到tsconfig.json

"typeRoots": [
  "./node_modules/@types",
  "./src/types"
],

并在./src/types/foo/index.d.ts中添加了定义文件。但是,VSCode和typescript webpack-loader都无法将'foo'中的导入与定义文件中的导出相关联。

处理此问题的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

这就是我所做的here

为现有的lib创建“my Type” 按照@types的说明进行操作 并将其发布到“我的”Github。 而不是发布到@types

终于

npm i git+https://github.com/my/repo.git

它将以node_modules / @ types / selected-name
结尾 确切地说tsc期望它在哪里

我没有尝试,但我没有看到为什么它不应该从其他来源工作

npm i ../myrepo

答案 1 :(得分:0)

在"文件中添加对类型定义的引用" tsconfig.json的一部分解决了这个问题:

{
    "compilerOptions": { ... },
    "files" : ["./src/types/foo.d.ts"]
}

Dan提出的这个solution也起作用,但需要更多的工作 - 如果有人打算最终公布定义,这是理想的方法。