Angular2,TypeScript和Visual Studio代码绝对路径配置

时间:2017-10-13 07:07:10

标签: typescript visual-studio-code

正如我在THIS问题中向我解释的那样(顺便说一句,谢谢),我可以使用TS配置文件提供baseUrlpaths,以便能够减少无意义的路径,例如../../../../someModule更短的别名版本,例如@AliasPath/someModule。所以,我修改了我的tsconfig.app.json(请注意,我修改了.app.json配置文件,而不是根文件夹中的主tsconfig.json)文件,其中包含以下行:

....
"baseUrl": "./",
....
"paths": {
  "@services/*" : ["app/services/*", "src/app/services/*"]
}

在代码中我尝试通过以下方式导入一个服务:
import { CommunicationService } from "@services/communication.service";

项目正在建设中,但TypeScript无法识别我定义的路径别名,用红色波浪线标记它们:

并在问题标签中报告丢失的文件:

问题是,我如何指导TypeScript(因为我认为它是TypeScript问题)关于我的路径别名?

2 个答案:

答案 0 :(得分:1)

这似乎是VS Code的问题,例如,您可以在以下链接上看到(这是其中之一): VSCode ignores paths in tsconfig.app.json

但是我发现了一个解决方法,因为我遇到了同样的问题。我刚刚安装了扩展 TypeScript Importer 。这为我解决了。

答案 1 :(得分:1)

从TypeScript 3.1开始,paths配置必须位于名为tsconfig.json的文件中。如果它位于tsconfig.app.json中,则不会被vscode拾取(但是tsc -p tsconfig.app.json显然可以工作)。

要确保TS文件是右侧tsconfig的一部分,请在VS Code中运行TypeScript: Go to project configuration命令。这应该打开设置了paths的tsconfig