jsdoc typedef 中是否可以有动态键(道具名称)?我想象这看起来像下面的例子(它不起作用)。
@typedef {Object} Foo
@property {string} bar
@property {*} *
Run Code Online (Sandbox Code Playgroud)
传递未在 typedef 中列出的属性e.g. {baz: 0}会使打字稿感到不安,例如,
'{ bar: string; 类型的参数 巴兹:数字;}' 不能分配给 'Foo' 类型的参数。对象字面量只能指定已知属性,而 'baz' 不存在于类型 'Foo' 中
Object.<string, *>似乎更接近理想的输出,但导致了奇怪的输出
@typedef {Object} Foo
@property {number} bar
@property {Object.<string, *>}
Run Code Online (Sandbox Code Playgroud)
输出:
type Foo = {
bar: number;
(Missing): {
[x: string]: any;
};
}
Run Code Online (Sandbox Code Playgroud)
您还可以在 JSDOC 中使用普通的 TS 语法。
请参阅下一个示例:
/**
*
* @param {Record<string, string> & {bar:string}} arg
*/
const foo = (arg) => {}
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用实用程序类型:
/**
*
* @param {Partial<{age:number}>} arg
*/
const partial = (arg) => { }
Run Code Online (Sandbox Code Playgroud)
您可以在这里找到更多实用程序
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |