Я создал проект Mail add-in for Office по умолчанию в Visual Studio 2015. Он работает нормально. Я установил ReSharper и дает мне предупреждения о вещах из Office.js и jquery.js:ReSharper (false?) Предупреждения JavaScript
Один из ReSharper кода правок () является добавление в начало файла reference directives (например, /// <reference path="~/Scripts/_officeintellisense.js" />
). Если я добавлю правильные, предупреждения исчезнут. Но я не хочу добавлять код, чтобы заставить ReSharper работать правильно. Non-ReSharper IntelliSense находит свойства/переменные, и приложение работает нормально, поэтому я думаю, что они ложные предупреждения.
Я запускаю ReSharper 9.2, сообщество Visual Studio 2015.
Проблема возникает, когда существует ссылка на другой .js-файл в проекте, а объекты Office/jQuery используются в определении функции (не видите предупреждения об использовании непосредственно в файле, вне функции определения).
Простой репро случай: Создать «библиотеку классов (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 #? – ulrichb
Невозможно воспроизвести это в R # 9.1. Просто создал новый проект (простая библиотека C#) и добавил ссылку на пакет 'Microsoft.Office.js' + создал файл .js, содержащий' console.log (Office.cast.item.toItemCompose (Office.item.mailbox.item)) '. R # правильно определяет ссылку «Office» (то же самое с jQuery). – ulrichb
Я могу воспроизвести то, что вы видите. Оказывается, что поведение запускается с помощью эталонной директивы и использования объектов внутри функций. Я добавил к вопросу номер моей версии и инструкции для простого примера воспроизведения (следуя тому, что вы сделали). – Vimes