我刚开始在VS2015中使用TypeScript,到目前为止它已经很顺利了。我已经建立了一个结构,它正在编译并按预期执行。
但是当我尝试包含npm安装的模块时问题就出现了。
这没有问题:
import * as fs from 'fs';
fs默认可用。但是,当我使用npm安装其他模块(在本例中为xml2js)时,VS 2015声称无法识别该模块。
import * as xml2js from 'xml2js';
...
Error TS2307 Cannot find module 'xml2js'.
但有趣的是,如果我转到项目文件夹并运行cli命令
node app.js
它编译没有错误。所以看起来VS 2015无法识别模块,即使package.json包含正确的包。
另一件事,在VS 2015解决方案查看器中,列出了包,但标有红色圆圈,请参见下文:
有谁知道红色圆圈表示什么?
我可能已经在某个地方做了一个bobo,或者跳过了一个关键部分,但我还不足以成功谷歌。
感谢任何帮助。
答案 0 :(得分:1)
好的,感谢Juan的评论,我能够解决我的问题。当您了解TypeScript和模块的工作原理时,解决方案很简单。
简而言之,模块通常是以js开发的。当您开始使用TypeScript时,您计划使用的模块需要在开发时考虑TypeScript(请参阅Juan关于typings的评论,.d.ts文件)。已经转换为匹配的一个好例子是模块时刻。
但对于其他人,利用率较低的库,您可能需要使用DefinitelyTyped模块(DefinitelyTyped)来补充ordenary模块
在这里,您可以找到对大多数不同模块的支持。这将下载预期模块的TS补充,允许您照常导入模块。更多详细信息可以在上面的链接中找到。