Visual Studio Typescript Intellisense不尊重tsconfig.json baseUrl

时间:2018-05-16 20:39:53

标签: visual-studio typescript

我在Visual Studio 2017中有一个带有大型TypeScript代码库的Web项目。当我进行TypeScript构建时,我没有错误,并且生成的JavaScript是正确的。但是,我的intellisense使用基于我的tsconfig.json中配置的baseUrl的路径显示任何导入的错误。

例如: enter image description here

当我将这些更改为相对路径时,错误就会消失: enter image description here

其他编辑'代码检查似乎与前者没有问题。我们已经确认它在VS Code和JetBrains Rider中工作。

我的tsconfig.json如下:



{
	"compilerOptions": {
		"noImplicitAny": false,
		"noEmitOnError": true,
		"strictNullChecks": true,
		"removeComments": false,
		"sourceMap": true,
		"target": "es5",
		"module": "amd",
		"moduleResolution": "node",
		"baseUrl": "./Content/ts"
	},
	"exclude": [
		"node_modules"
	],
	"compileOnSave": true
}




我已经尝试了尽可能多的不同Visual Studio设置,但似乎没有任何因素影响intellisense是否能够找到模块。同样,编译器本身在查找和构建时没有问题。

更新:忘记包含我们在.csproj文件中定义的<TypeScriptBaseUrl>属性,设置为与tsconfig.json中相同的值。这会导致Visual Studio中的TS构建成功,但似乎不会影响Intellisense。

2 个答案:

答案 0 :(得分:4)

原来,tsconfig.json文件需要包含在项目中才能让Intellisense满意。不确定为什么<TypeScriptBaseUrl>设置不够好。这可能仍然是一个需要报告的错误。

答案 1 :(得分:0)

如果有人在 SDK 样式的项目中遇到类似问题,您可以将其添加到您的 .csproj 中:

<!--
  Looks like we need to include tsconfig.json explicitly into the project
  (as opposed to being "auto-included" by being in the project's folder),
  for the Visual Studio IntelliSense to pick it up.
-->
<ItemGroup>
  <Content Include="tsconfig.json" />
</ItemGroup>

假设您的 TypeScript 安装在 node_modules 中,Visual Studio IntelliSense 应该能够在尊重 tsconfig.json 的同时将其用作语言服务器。

此外,我发现禁用 Resharper 对 TypeScript 的支持很有帮助。看起来 Resharper 在支持最新的 TypeScript 版本方面滞后。转到扩展 / Resharper / 选项 / 产品和功能,取消勾选 JavaScript 和 TypeScript。

在所有这些更改后重新启动 Visual Studio。