Angularjs - Resharper intellisense 被 TypeScript 破坏了?

Angularjs - Resharper intellisense broken with TypeScript?

我有 VS 2013 Update 4、TS 1.4、最新的 WebEssentials 和 R# 8。 我正在尝试在我的 MVC 解决方案中创建一些 AngularJS 代码。 通过 nuget 安装 Angularjs 和 angular.d.ts。我对 "marked" 做了同样的事情,并且 jQuery 作为 Angular 依赖自动安装。

none Angular 类型如何通过 Intellisense 解析。如果我试图在一个空的 TypeScript 文件中输入 "mar",我会得到这个:

如果我输入 "jque",我会得到:

但是当我输入 "ang" 时,什么也没有。

所有 d.ts 文件已就位:

添加引用路径指令没有帮助,尽管它不是必需的,而且 Intellisense 对其他框架来说工作得很好。没有 Intellisense 支持的手动输入工作正常,我没有遇到编译错误,所以 TSLint 和 tsc 对我的代码没问题。

所以,我的问题是 - 那里发生了什么?

P.S。刚刚添加了 Knockout 来测试它并输入 "ko" 会带来正确的 Intellisense。

P.P.S。我关闭了 R# 中的 TS 支持,intellisense 似乎可以正常工作。所以,我认为这是 Resharper 问题。

I turned off the TS support in R# and intellisense seems to work properly. So, I would assume this is the Resharper issue

是的。他们需要更新 v1.4 打字稿。到那时你可以使用旧的 angular.d.ts : https://github.com/borisyankov/DefinitelyTyped/blob/1.3.0/angularjs/angular.d.ts

如 basart 所述,您可以在过渡期间使用旧版本的文件,而不是安装 EAP 或关闭 Resharper。但我建议不要在您的解决方案中手动添加它。 Version 1.7.4 of jQuery d.ts and version 2.4.0 of Angular d.ts 对我有用,您可以从 Visual Studio 中的包管理器命令行使用 NuGet 来安装它们。

Install-Package jquery.TypeScript.DefinitelyTyped -Version 1.7.4
Install-Package angularjs.TypeScript.DefinitelyTyped -Version 2.4.0

确保在 运行 命令之前 select 控制台内的下拉框中的项目。

我今天早些时候遇到了这个问题,尽管有参考元注释和文件,但内联智能感知标记 angular 以及未找到各种接口(通常 IPromise<T>)出现在我的项目中。

与@basarat 的回答类似,我能够禁用 ReSharper Intellisense(Resharper | Options... | Intellisense | General),重新启动 Visual Studio,然后 re-enable TypeScript Intellisense。在 re-enabling 智能感知后,我不再看到红色波浪形。

我在 Visual Studio 2015,ReSharper 2016.3.2 中,在一个同时使用 Angular 1.6 和 TypeScript 的项目上做了这个,没有 tsconfig.json 文件(配置是在Web 项目的 TypeScript 选项卡。)