如何为所有属性具有相同结构的对象编写jsdoc定义

时间:2019-10-04 11:58:05

标签: javascript ide jsdoc jsdoc3

这是我拥有的数据结构:

/**
 * @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是一种解决方案,但这超出了这个问题的范围。

0 个答案:

没有答案