为什么我在Visual Studio 2015中遇到“无法找到模块'angular2 / core'”Intellisense错误

时间:2016-04-18 18:10:44

标签: typescript visual-studio-2015 angular

我正在使用带有TypeScript 1.8.5的Visual Studio 2015 Update 1。

我有一个使用Angular2的ASP.NET MVC 4.6 Web应用程序。

我使用以下设置设置了我的TypeScript编译选项:

 <PropertyGroup>
  <TypeScriptTarget>ES5</TypeScriptTarget>
  <TypeScriptJSXEmit>None</TypeScriptJSXEmit>
  <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
  <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
  <TypeScriptModuleKind>System</TypeScriptModuleKind>
  <TypeScriptModuleResolution>node</TypeScriptModuleResolution>
  <TypeScriptRemoveComments>False</TypeScriptRemoveComments>
  <TypeScriptOutFile />
  <TypeScriptOutDir />
  <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
  <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
  <TypeScriptSourceMap>True</TypeScriptSourceMap>
  <TypeScriptMapRoot />
  <TypeScriptSourceRoot />
  <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
</PropertyGroup>

ErrorList不包含构建错误,但它确实包含Intellisense错误,例如:

 Cannot find module 'angular2/core'

但是在node_modules文件夹下,Angular2以及我所有的其他依赖项都应该是它们应该存在的位置。

因此,TypeScript 成功编译到JavaScript,生成的JavaScript 在运行时,但我在Visual Studio环境中看到 Intellisense错误我应用程序的大部分TypeScript文件。

此外,我所依赖的一些组件,例如ag-grid-ng2,在node_modules下具有正确的TypeScript定义文件,但Intellisense将它们视为未键入(换句话说,键入为“any”)

为什么?

1 个答案:

答案 0 :(得分:0)

问题由以下原因解决:

  1. <TypeScriptModuleKind>设置从系统更改为 CommonJs
  2. 完全重启 Visual Studio
  3. 不要跳过第2步。不,卸载和重新加载项目无济于事。

    我不确定为什么在重新启动Visual Studio之前Intellisense错误不会消失,但那是我们的修复。