如何在 @type 或 @typedef 中引用另一个对象的键?
/**
* @typedef {{name: {name: string}}} moo
* @typedef {{name: moo.name}} moo2
*/
我希望 vscode 能够将 moo2 解析为具有结构
{name: {name: string}}
,但事实并非如此。
您必须使用括号表示法:
/**
* @typedef {{ name: moo["name"] }} moo2
*/
如果你使用TS风格的JSDoc并且需要引用同名属性,你也可以使用
Pick
:
/**
* @typedef {Pick<moo, "name">} moo2 -> { name: { name: string }}
*/