У меня есть структура данных:
/**
* @typedef {Object} MyCustomType
* @property {String[]} units
* @property {String} category
* @property {String} key
* @property {String} type
*/
/**
* @type {Object.<String, MyCustomType>}
*/
export const myObj = map(
{
prop1: {
units: ['unit-1'],
category: 'category-1',
},
prop2: {
units: ['unit-1', 'unit-2'],
category: 'category-1',
},
// and so on...
},
(obj, key) => ({
...obj,
key,
type: camelCase(key),
})
);
Все свойства имеют одинаковую структуру, которая описывается пользовательским типом: MyCustomType
Проблема в том, что map()
функция вводит в заблуждение IDE, поэтому IDE не может автоматически заполнять myObj
свойства.
Есть ли способ улучшить объявление jsdoc таким образом, чтобы в среде IDE можно было корректно автоматически заполнять ключи и свойства?
PS Я знаю, что TypeScript - это решение, но оно выходит за рамкиобъем этого вопроса.