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

TypeScript接口中的访问器为何不能使用逗号作为分隔符

TypeScript接口getter成员逗号分隔报错问题说明
  • 错误复现
    在接口中定义getter访问器时,如果在访问器声明末尾使用逗号作为分隔符,会直接触发解析错误:

    interface I {
      get x(): number,
      //             ^-- 此处不能使用逗号
    }
    

    抛出的TS错误码对应提示为:

    '{' expected.ts(1005)

  • 合法兼容写法
    该语法位置支持两种合法分隔方式:使用分号作为分隔符,或直接省略分隔符,两种写法都可以正常通过TS编译,示例如下:

    interface I {
      get x(): number;
      get y(): number
    }
    
  • 规则设计原因
    从语法实现角度看,该限制并非技术上无法绕过,核心设计考量是TypeScript作为JavaScript的超集,在访问器相关语法上完全对齐JavaScript标准规范:JavaScript类内部的方法、getter/setter成员之间,标准语法仅支持分号分隔或省略分隔符,不接受逗号作为成员分隔符。TypeScript没有为接口内的访问器成员单独扩展逗号分隔的语法规则,一方面是为了降低语法解析阶段的歧义风险,另一方面也是为了避免和标准JS语法产生不必要的分歧,降低开发者的语法认知成本。
    官方版本发布说明中并未专门提及该限制,当项目linter强制要求所有类型成员使用逗号作为分隔符时,该语法限制会对开发流程造成阻碍,这类场景下可以调整linter规则,对接口内的getter/setter成员豁免逗号分隔要求,或统一使用分号作为类型成员的分隔符即可解决冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:30:46