如何用JSDoc标注items对象的键为对应Item的id?
如何用JSDoc标注键为Item实例id的对象?
先看你的代码定义:
class Item { /** *@type {number} */ id; } let items = {};
你希望标注items对象的键对应Item实例的id属性,当前使用的写法是完全可行的:
/** * @type {{[item_id: number]: Item}} */ let items = {};
这个语法清晰定义了items是一个键为数值类型、值为Item实例的对象,能让编辑器正确识别结构,提供类型提示和校验。
你也可以用更简洁的Record类型写法,效果完全一致:
/** * @type {Record<number, Item>} */ let items = {};
需要注意的是:JSDoc目前不支持直接约束键必须是已存在的Item实例的id值(仅允许任意数值),如果要实现这种严格约束,只能通过代码逻辑来保障(比如封装添加/删除Item的方法,确保键与实例id严格对应)。
内容的提问来源于stack exchange,提问作者Fiodar Shurankou
相关产品推荐
相关产品推荐

