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
相关产品推荐
相关产品推荐

