You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为JSDoc标注的CheckData类定义可选属性

如何为JSDoc标注的CheckData类定义可选属性

嘿,我懂你的需求——你想给用JSDoc标注的CheckData类加上可选的data属性,同时能像之前用@typedef那样,顺利用/**@type{CheckData}**/标注你的对象实例对吧?

其实操作起来和你用@typedef的思路差不多,JSDoc里不管是定义对象类型还是类的属性,标记可选属性的语法是通用的:只需要在属性的类型后面加一个=就搞定了。

你之前的@class标注已经有了check属性,只需要把data属性的类型改成*=,就能把它标记为可选。完整的标注应该是这样的:

/**
 * @class CheckData
 * @property {boolean} check - Indicates if the operation was successful
 * @property {*=} data - Optional additional data (the = symbol marks this property as optional)
 */

改完之后,你原来的两个对象标注就都能被正确识别了:

/**@type{CheckData}**/ 
const object1 = {check:true}

/**@type{CheckData}**/ 
const object2 = {check:false, data: 'Why?'}

不管是只传check的object1,还是同时传了check和data的object2,JSDoc都会认可它们符合CheckData的类型定义。

对了,顺便提一句,这个=标记可选属性的语法在JSDoc里是通用的,不管你是用@typedef定义纯对象类型,还是用@class标注类结构,都能这么用哦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:13:16