我在 VScode 中启用了非常有用的
// @ts-check
选项,但现在我不知道如何处理空初始化的对象。
这是一个简化的示例:
// @ts-check
const settings = {
a: null,
b: null
}
settings.a = 10
VSCode 报告 类型“10”不可分配给最后一行中的类型“null”, 我希望能够稍后在代码中设置
settings.a
。
请注意,这是 Javascript,而不是 Typescript。我找到了很多回复,但都是针对 TS 的,不适用于 JS
谢谢你。
@typedef
(JSDoc) / @typedef
(TypeScript 文档) 中定义对象,并在 @type
(JSDoc) / @type
(TypeScript 文档) 中引用该对象。出于说明目的,这假设 b
应该是一个字符串:
// @ts-check
/**
* @typedef MyType
* @type {object}
* @property {number|null} a - a numeric value
* @property {string|null} b - a string value
*/
/**
* @type {MyType}
*/
const settings = {
a: null,
b: null
}
请注意,您可以直接在
@type
中定义对象,但是 @typedef
允许
话虽如此,在
@type
中定义对象形状要紧凑得多:
// @ts-check
/**
* @type {{a: number|null; b: string|null}}
*/
const settings = {
a: null,
b: null
}