对象内的动态键名

Dynamic key name inside an object

我正在尝试执行以下操作: 我有一个看起来像那个的对象

const object = {
    healthcheck: [
        { method: 'get', name: 'test' }
    ],
    users: [
        { method: 'get', name: 'auth' }
    ],
};

所以我有一个有键的对象,每个键可以是任何字符串,每个键是一个对象数组,以方法和名称作为键。

如何使用 JSDoc 为对象内部的动态键提供智能感知?

谢谢!

您可以通过以下语法键入提示动态键:{[key: string]: any},因此在您的情况下,这应该会得到您要查找的结果:

/**
 * @typedef {{
 *     [key: string]: [{
 *         method: string,
 *         name: string
 *     }]
 * }} MyObject
 */

/**
 * @type {MyObject}
*/
const object = {
    healthcheck: [
        { method: 'get', name: 'test' }
    ],
    users: [
        { method: 'get', name: 'auth' }
    ],
}

typedef 是为了方便在代码的各个地方使用类型,但如果需要智能感知来显示类型的完整形状,可以直接使用类型:

/**
 * @param {{
 *     [key: string]: [{
 *         method: string,
 *         name: string
 *     }]
 * }} routes
 */
const xt = routes => {}