这是我拥有的数据结构:
/**
* @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是一种解决方案,但这超出了这个问题的范围。