是否可以在jsdoc typedef中使用动态键(属性名称)?我在想这看起来像下面的示例(不起作用)。
@typedef {Object} Foo
@property {string} bar
@property {*} *
传递typedef e.g. {baz: 0}
中未列出的属性会使打字稿不满意,例如
'{{bar:string; baz:数字; }”不可分配给“ Foo”类型的参数。 对象文字只能指定已知的属性,而'baz'在'Foo'类型中不存在
Object.<string, *>
提出的方法似乎更接近理想的输出,但是却导致了奇怪的输出
@typedef {Object} Foo
@property {number} bar
@property {Object.<string, *>}
输出:
type Foo = {
bar: number;
(Missing): {
[x: string]: any;
};
}
答案 0 :(得分:1)
您也可以在 JSDOC 中使用普通的 TS 语法。
见下一个例子:
/**
*
* @param {Record<string, string> & {bar:string}} arg
*/
const foo = (arg) => {}
您甚至可以使用实用程序类型:
/**
*
* @param {Partial<{age:number}>} arg
*/
const partial = (arg) => { }
您可以找到更多实用程序here