JSDoc API说,您可以像这样文档化对象:。
文档中记录的类型看起来类似于:
{Object.<string, number>}
并记录多种类型:
{(number|boolean)}
但是,如果我尝试指定一个既可以使用字符串也可以使用数字作为键的对象,则无法使用。VSCode/JSDoc 只会报告类型为“any”的错误。
VSCode 不理解:
/**
* Object with string or number for keys
* @param {Object.<(string|number), any>} Container
*/
我还尝试过在@typedef
中使用此方法,或者将键定义为自己的@typedef
,但都没有效果。
因为我正在使用&
来获取类型的交集
(例如{Object.<string, any> & {'foo': number}}
),所以我不想使用布尔值或者说:
/**
* Object with string or number for keys
* @param {(Object.<string, any>|Object.<number, any>) & {'foo': number}} Container
*/
文档中记录的类型看起来类似于:
type Container = ({
[x: string]: any;
} & {
'foo': number;
}) | ({
[x: number]: any;
} & {
'foo': number;
})
这段文本过于啰嗦。
有没有更简洁的方式记录这个输出结果?