为带有内部模块的软件包添加Typescript声明

时间:2018-09-28 05:57:55

标签: typescript tsc

我想将类型添加到纯粹用Javascript编写的组件库中,而我目前无法直接将其添加到其中。我已经按照adding declarations to third party packages的示例进行操作,几乎可以理解我的意思。我当前遇到的问题是包装结构。

该软件包以node_modules的形式位于@company/company-widgets中,由于tsc无法找到并关联我添加的声明文件,因此我不确定如何处理内部模块。编译器的建议是 Try `npm install @types/company__company-widgets` if it exists or add a new declaration (.d.ts) file containing `declare module 'company__company-widgets';`

我尝试了以下方法:

  1. 使用tsconfig.json index.d.ts`文件用编译器消息中指定的模块声明修改"typeRoots": ["@types", "./src/@types"] and adding an
  2. 随着上述tsconfig.json的更改,在src/@types下添加目录以匹配node_modules的目录
  3. 我还更改了声明,使其有一个名为{strong> company 的module和一个 __ company-widgets
  4. namespace
  5. 我也变得绝望了,开始在其中node_modules放置一个声明。

不幸的是,这些都没有找到声明,因此我一直认为它无法将声明中的模块名称与包名称相关联。 任何建议或答案将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

编译器的建议是错误的:模块声明应为declare module '@company/company-widgets';,而不是declare module 'company__company-widgets';。我fixed this recently,此修复程序应该在TypeScript 3.1中。