【问题标题】:ReSharper (false?) JavaScript warningsReSharper (false?) JavaScript 警告
【发布时间】:2015-11-15 21:59:06
【问题描述】:

我在 Visual Studio 2015 中创建了一个默认的 Mail add-in for Office 项目。它运行良好。我安装了 ReSharper 并给了我关于 Office.js 和 jQuery.js 的警告:

ReSharper 代码编辑 () 之一是添加到文件顶部 reference directives(例如 /// <reference path="~/Scripts/_officeintellisense.js" />)。如果我添加正确的,警告就会消失。但我不想添加代码只是为了让 ReSharper 正常工作。非 ReSharper IntelliSense 可以找到属性/变量并且应用程序运行良好,所以我认为它们是错误警告。

我正在运行 ReSharper 9.2,Visual Studio 2015 社区。​​p>

当项目中存在对另一个 .js 文件的引用指令并且在函数定义中使用 Office/jQuery 对象时,该问题会特别发生(不要在函数定义之外直接在文件中看到有关用法的警告)。

一个简单的repro案例:创建一个“类库(Visual C#)”项目,安装Microsoft.Office.js NuGet包,创建JavaScript1.js和JavaScript2.js,并添加以下内容前者的代码:

/// <reference path="JavaScript2.js" />

function foo() {
    console.log(Office.cast.item.toItemCompose(Office.item.mailbox.item));
}

此时我看到了类似于屏幕截图中的警告。

我做错了吗?警告是否有更清洁的解决方案?

【问题讨论】:

  • 无法在 R# 9.1 中重现这一点。刚刚创建了一个新项目(简单的 C# 库)并添加了一个 Microsoft.Office.js 包引用 + 创建了一个包含 console.log(Office.cast.item.toItemCompose(Office.item.mailbox.item)) 的 .js 文件。 R# 正确检测到 Office 引用(与 jQuery 相同)。
  • 我可以重现你所看到的。事实证明,行为是通过引用指令和使用函数内部的对象来触发的。我在问题中添加了我的版本号和简单复制案例的说明(按照您所做的)。
  • /// &lt;reference path="../../Scripts/_references.js"/&gt; 添加到我的 .js 文件顶部消除了一些警告。也许 ReSharper 仅通过引用指令发现文件,而 IntelliSense uses various ways"Update JavaScript References" command 处理更多(但不是全部)警告,但添加了 100 多个引用,因此很难看。太糟糕了,依赖发现不是自动的。

标签: javascript visual-studio resharper intellisense


【解决方案1】:

代替更好的答案,我将警告标记为:

  • ReSharper 仅通过抓取引用指令来发现依赖项
  • ReSharper 仅显示函数内部的错误。这似乎是一个错误。

目前,我正在通过包含 _references.js 的引用指令并确保它引用相关库来解决此问题。

如果有人有不同/更好的答案,我愿意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多