Мне нужна помощь для ввода с помощью JSDoc3 неизменяемого объекта с общими ключами c, потому что WebStorm всегда жалуется. Может быть, я ошибаюсь, пожалуйста, скажите мне.
По сути, ввод объекта с помощью общих c клавиш можно записать следующим образом:
/** @typedef {Object<string,number>} myObject */
Мой объект неизменен, поэтому я создал больше JSDo c для покрытия некоторых неизменяемых функций:
/**
* @typedef {Object} ImmutableObject
* @property {function} set
* @property {function} setIn
*/
Также мои ключи в перечислении, так что больше JSDo c
/**
* @enum
*/
const SOME_KEYS= {KEY1: 'key1', KEY2:'key2'}
Затем я собрал все вместе:
/** @typedef {ImmutableObject<SOME_KEYS,number>} myImmutableObject */
Несмотря на все мои усилия, WebStorm всегда жалуется, что функция не существует, когда я использую неизменяемую функцию, объявленную для типа объекта с myImmutableObject
!
Вот скриншот, сделанный из WebStorm 2020 (то же самое в 2019 году):
Однако тип ImutableObject
хорошо работает, когда используется "один", вот скриншот, сделанный из WebStorm 2020 :