我正在使用npm包(比如foo),在开发过程中,我想将此包与本地(与项目文件一起提交)的typescript定义文件相关联。我明确地不打算将定义文件作为npm包发布,因为截至目前它是不完整的,仅涵盖我实际使用的库的部分。
到目前为止,我已尝试过以下内容:
将以下内容添加到tsconfig.json
"typeRoots": [
"./node_modules/@types",
"./src/types"
],
并在./src/types/foo/index.d.ts
中添加了定义文件。但是,VSCode和typescript webpack-loader都无法将'foo'中的导入与定义文件中的导出相关联。
处理此问题的正确方法是什么?
答案 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也起作用,但需要更多的工作 - 如果有人打算最终公布定义,这是理想的方法。