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

JSDoc如何转义标注含空格、#等特殊字符的对象属性名?

解决方案

方法1:使用JSDoc标准的方括号包裹属性名

针对纯JS+JSDoc做类型标注的场景,JSDoc规范明确要求包含特殊字符、空格的属性名需要用方括号包裹,正确写法如下:

/**
 * @typedef {Object} EmployeeCsv
 * @property {string} [Emp#]
 * @property {string} [First Name]
 */

修改完成后再用emp["Emp#"]访问属性,tsserver即可正确识别类型,不会抛出属性不存在的报错。

方法2:使用TypeScript接口显式声明类型

如果项目支持TypeScript语法,可以直接在业务代码或者.d.ts类型声明文件中定义类型,写法更直观:

interface EmployeeCsv {
  "Emp#": string;
  "First Name": string;
}

使用这种方式定义类型后,字符串下标访问的类型校验也会完全正常。

内容的提问来源于stack exchange,提问作者root-aj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:51:01