jsdoc 类 如何使用静态属性
how jsdoc Classes with static properties
我怎样才能在这里获得有效的设置?
我希望能够用静态 类 _Test.list
记录 id
属性
但我无法在 vscode 中找到正确的智能感知方式。
所以所有数字都不是来自 _Test.list
字典,应该给我错误。
任何人都可以帮助我使用 jsdoc plz 正确格式化它。
抱歉,如果是菜鸟问题,我从 jsdoc 开始。
class _Test {
static list = { a:1,b:2,c:3 };
constructor() {
/**
* @typedef {Object} DATA
* @property {_Test.list} DATA.id - id from list _Test.list
* @property {_Test.list} DATA.id2 - id from list _Test.list
*
*/
/**@type {DATA} */
this.list = {
id: _Test.list.a, // should ok
id2: 14, // should show a error
}
}
};
我想这样进行是因为我需要在 vscode 中保留引用功能。
JSDoc 不像 Typescript 那样有 as const
的概念,至少在 VS Code 的打字稿中是这样。但是你可以显式地给出一个文字类型:
/** @type {{ a: 1, b: 2, c: 3 }} */
static list = { a: 1, b: 2, c: 3 }
但首先定义允许的值并在索引签名中使用它们会更简单:
/** @typedef {1 | 2 | 3} Values */
/** @typedef {{ [s: string]: Values }} DATA */
/** @type {DATA} */
static list = { a: 1, b: 2, c: 3 }
那么你也可以在其他地方使用DATA
。
class _Test {
/** @type {DATA} */
static list = { a:1,b:2,c:3 };
constructor() {
/** @type {DATA} */
this.list = {
id: _Test.list.a, // should ok
id2: 14, // should show a error
}
}
};
只想更新
现在智能感知支持 jsdoc 与 ts 混合
所以我们可以使用
@type {keyof staticList}
我怎样才能在这里获得有效的设置?
我希望能够用静态 类 _Test.list
记录 id
属性
但我无法在 vscode 中找到正确的智能感知方式。
所以所有数字都不是来自 _Test.list
字典,应该给我错误。
任何人都可以帮助我使用 jsdoc plz 正确格式化它。 抱歉,如果是菜鸟问题,我从 jsdoc 开始。
class _Test {
static list = { a:1,b:2,c:3 };
constructor() {
/**
* @typedef {Object} DATA
* @property {_Test.list} DATA.id - id from list _Test.list
* @property {_Test.list} DATA.id2 - id from list _Test.list
*
*/
/**@type {DATA} */
this.list = {
id: _Test.list.a, // should ok
id2: 14, // should show a error
}
}
};
我想这样进行是因为我需要在 vscode 中保留引用功能。
JSDoc 不像 Typescript 那样有 as const
的概念,至少在 VS Code 的打字稿中是这样。但是你可以显式地给出一个文字类型:
/** @type {{ a: 1, b: 2, c: 3 }} */
static list = { a: 1, b: 2, c: 3 }
但首先定义允许的值并在索引签名中使用它们会更简单:
/** @typedef {1 | 2 | 3} Values */
/** @typedef {{ [s: string]: Values }} DATA */
/** @type {DATA} */
static list = { a: 1, b: 2, c: 3 }
那么你也可以在其他地方使用DATA
。
class _Test {
/** @type {DATA} */
static list = { a:1,b:2,c:3 };
constructor() {
/** @type {DATA} */
this.list = {
id: _Test.list.a, // should ok
id2: 14, // should show a error
}
}
};
只想更新
现在智能感知支持 jsdoc 与 ts 混合
所以我们可以使用
@type {keyof staticList}