Visual Studio 2015企业版与ReSharper 10 Ultimate - 无法正确解决

23
我安装了 Visual Studio 2015 Enterprise 版本 14.0.24720.00 Update 1 和 ReSharper 10 Ultimate 版本 10.0.2。我有一个 TypeScript 文件,使用 AtScript 语法引用 Angular2 指令模块作为其注释。但是,ReSharper 报告如下错误:

符号“Directive”无法正确解析,可能位于不可访问的模块中。

下面是完整的错误提示信息:
enter image description here
应用程序编译和运行正常,并且 Angular 部分也按预期工作。看起来这是 ReSharper 的误报。是否有人熟悉除禁用 ReSharper 或忽略此警告之外的解决方法?
6个回答

13

这个问题只是最新版本的ReSharper中的一个错误,如果你暂停ReSharper,这个问题就会消失,所有源代码将按照预期工作。

更新

这个问题已在ReSharper 2016.1版中得到解决。


2
就我所知,这个错误(不一定是在这种情况下)在2016.2.2版本中出现了,使用了TS 2.0.3,并开启了--strictNullChecks标志。 - Ken Smith
4
我也在2016.2.2与TS 2.0.3中看到这个错误。TypeScript编译没问题,但它抱怨momentjs。 - josh-sachs
1
我在R#2016.2.2和2016.3 EAP8中看到它,使用TS 2.0.6。像其他人一样,TS编译正常,但Resharper却抱怨。 我想它是在我打开strictNullChecks的时候开始的。提交了这个错误:https://resharper-support.jetbrains.com/hc/en-us/requests/803955?flash_digest=b7c62e7ca4e90ba381450c63d6573661eb70ef7b - Ken Smith

2
截至2016年2月,这个问题在ReSharper Ultimate 10.1 EAP 3中已经被修复。但是这个版本仍然存在一些其他的TypeScript问题。
原始回答解释为什么之前的版本不能工作:
我有相同的设置和相同的问题。我强烈认为这与“moduleResolution”:“node”有关。

https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FRSRP-273158

很遗憾,目前还没有办法。我们正在为下一个 ReSharper 版本开发对 node.js 的支持。

可能没有其他帮助比新的Resharper版本更好。 - Norbert Korny
谢谢,你的回答帮我找到了解决方案。您可以在此处下载R# EAP版本:https://confluence.jetbrains.com/display/ReSharper/ReSharper+10.1+EAP - Antonio Dlp
我可以确认这个修复了问题... 我使用的是10.1 EAP 7。 - Elan Hasson
我使用了10.1 31 Mar EAP8版本,但它并没有解决这个问题。 - Jim

2

解决方法:如果您正在使用 node_modules 文件夹中的 angular2,则可以直接引用它,而不是依赖于新的节点模块分辨率。例如,您可以这样做:

import {Directive} from '../../node_modules/angular2/core';

确实这是一个解决方法,但是我正在寻找一个永久性的解决方案... 这会带来什么风险? - David Pine
如果您移动了文件,您需要更新所有导入的相对路径... - Laoujin

1
如果更新最新的ReSharper版本无效,并且这仅影响.js(x).ts(x)文件,则只需要暂停它们。您可以通过转到 ReSharper -> 选项 -> 取消选中 JavaScript 和 TypeScript 来实现。

enter image description here


虽然这不是我首选的解决方案,但我别无选择,只能这样做。没有其他方法起作用,我尝试了许多在互联网上找到的想法。然而,与其完全禁用ts文件的Resharper,我更喜欢禁用ts文件的代码检查,这样我仍然可以使用代码清理功能。或者更好的是,我只需从检查严重性菜单中删除那个具体的错误即可。我看到这个错误已经报告了几年,但希望JetBrains在未来的某个补丁中修复它。 - Ademar

0
可能是Resharper的问题。从工具->选项->Resharper Ultimate->常规->立即暂停中禁用它,错误将被隐藏。

0

我在Visual Studio 2017中的Resharper 2017.1上的一个模块上遇到了同样的问题。

enter image description here

但是在我将Resharper更新到2017.2.2之后,问题得到了解决。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接