我在打字稿中有一个具有以下布局的项目:
edit/${title}
我打开我的项目(之前由Visual Studio中的其他人制作)和Webstorm中我在TypeScript编译期间遇到错误。
为什么编译器看不到打字?
在App / subfolder2的某些文件中,我可以看到像
这样的引用导入MessageReceiver = require(“App / subfolder1 / SourceCode”);
即相对于顶级文件夹定义,与子文件夹2“并行”。显然它在Visual Studio中工作,但在这里它会产生错误:错误:(2,34)TS2307:找不到模块'App / subfolder1 / SourceCode'。
如果我将路径更改为相对路径(../subfolder1/SourceCode),则错误消失,但我不想以任何方式更改当前代码,因此想要告诉Webstorm的编译器从哪里开始查找所需的相对于顶级文件夹定义的模块。我怎么能这样做?
答案 0 :(得分:0)
看起来您必须确保将TypeScript配置为在classic
中使用node
模块发现模式而不是tsconfig.json
,如果您没有{ - 1}},则可能需要创建一。
应该假设:
a)WebStorm在TypeScript语言服务之上构建了解析/语义引擎
......或......
b)WebStorm尊重tsconfig.json
此处描述了classic
和node
模块分辨率之间的差异,它主要归结为TypeScript在node_modules
模式下查看模块路径时查看node
从./
开始(相对于当前文件):http://www.typescriptlang.org/docs/handbook/module-resolution.html
还可以查看关于打字和发现的博文:http://ivanz.com/2016/06/07/how-does-typescript-discover-type-declarations-definitions-javascript/