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

如何将带索引签名的TypeScript Payload接口转换为完整JSDoc?

如何在JSDoc中实现TypeScript接口的索引签名(任意字段支持)

你要转换的TypeScript接口里,[key: string]: any;是允许任意字符串键的索引签名,要在JSDoc中实现这个特性,有两种实用写法:

写法一:扩展现有@property声明

直接在你已有的JSDoc注释中添加一行,用[key: string]作为属性名,指定类型为any,就能支持任意字段:

/**
 * @typedef Payload
 * @type {Object}
 * @property {string} [level] 可选的级别字段
 * @property {number} [code] 可选的状态码字段
 * @property {any} [key: string] 任意字符串键对应的任意类型值
 */

写法二:使用交叉类型语法

这种方式更贴近原TypeScript接口的语义,通过Object.<string, any>定义索引签名对象,再和包含具体属性的对象做交叉:

/**
 * @typedef {Object.<string, any> & {
 *   level?: string;
 *   code?: number;
 * }} Payload
 */

两种写法都能让编辑器正确识别Payload类型:既包含level、code这两个可选字段,也允许添加任意字符串键的额外属性。

内容的提问来源于stack exchange,提问作者eliezra236

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:45:33