【发布时间】: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 相同)。 -
我可以重现你所看到的。事实证明,行为是通过引用指令和使用函数内部的对象来触发的。我在问题中添加了我的版本号和简单复制案例的说明(按照您所做的)。
-
将
/// <reference path="../../Scripts/_references.js"/>添加到我的 .js 文件顶部消除了一些警告。也许 ReSharper 仅通过引用指令发现文件,而 IntelliSense uses various ways。 "Update JavaScript References" command 处理更多(但不是全部)警告,但添加了 100 多个引用,因此很难看。太糟糕了,依赖发现不是自动的。
标签: javascript visual-studio resharper intellisense