Как я могу использовать комментарий JSDoc для устранения предупреждения «Неразрешенная функция или метод» в WebStorm или других продуктах JetBrains? - PullRequest
1 голос
/ 15 апреля 2019

В WebStorm, PyCharm и других продуктах JetBrains вы можете использовать комментарии JSDoc для информирования WebStorm о том, что объект имеет определенное свойство, тем самым устраняя предупреждение.

Либо @namespace, либо @property хорошо работает для простых объектов, но я не могу найти команду JSDoc, которая работает для функций.

const query = require(...);
...
Object.keys(record)
    .forEach(col => {
        query.set(col, record[col]);
    });

В приведенном выше фрагменте .set(...) не распознается WebStorm и выдает Неразрешенную функцию или метод предупреждение.

Это только один пример. Мой проект использует несколько сторонних библиотек, и многие из этих библиотек имеют объектные методы, которые вызывают предупреждение об использовании. Для этих библиотек нет определений машинописи, и анализ файлов в WebStorm их не учитывает.

Я не могу изменить объект запроса, а также не могу изменить способ его импорта. Можно ли добавить комментарий JSDoc, чтобы устранить предупреждение? Я пробовал несколько вариантов @ property , @ param , @ namespace и @member.

Примечания:

Я знаю, что предупреждение можно отключить, используя // noinspection JSUnresolvedFunction в строке непосредственно над использованием функции, но это худшее решение. Комментарии JSDoc могут быть размещены в нескольких областях, таких как начало определения класса или функции. Решение JSDoc также улучшает читабельность и имеет значение в других средах, отличных от JetBrains.

1 Ответ

1 голос
/ 16 мая 2019

JSDoc предоставляет способ явного аннотирования символов с помощью @type

Так что в вашем примере это может быть:

/** @type {QueryObjectTypeDef} */
const query = require(...);

Также тот же эффект может быть достигнут (протестировано в WebStorm) свстроенная аннотация аргументов функции:

forEach((/* ColTypeDef */ col) => {...})
...