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

TypeScript类型定义中数字开头属性名引发ESLint及React Native错误的解决方案咨询

解决TypeScript中定义数字开头属性类型的ESLint错误问题

我之前也碰到过一模一样的场景,API返回的JSON键以数字开头,导致TypeScript类型定义触发ESLint错误,给你几个实用的解决办法:

  • 给属性名添加引号(最直接的方案)
    TypeScript支持用字符串字面量定义对象属性名,对于数字开头的属性,只需要把属性名用单引号或双引号包裹起来即可,这样既符合语法规范,也能让ESLint通过检查:

    type MyObject = { 
      '1stXxx'?: string; 
      '2ndXxx'?: string;
    };
    

    这种写法完全不影响类型校验,TypeScript会正确识别这些属性,和API返回的JSON结构完美匹配。

  • 使用映射类型简化定义(属性较多时推荐)
    如果API返回的数字开头属性比较多,可以用Record映射类型来简化类型定义,避免重复写引号:

    type MyObjectKeys = '1stXxx' | '2ndXxx';
    type MyObject = Record<MyObjectKeys, string | undefined>;
    

    这种方式在属性数量多或者需要复用键类型的时候特别方便。

  • 关于ESLint规则的说明
    你提到找不到对应的ESLint规则来关闭,其实这个错误本质上是TypeScript语法层面的限制,而不是ESLint的风格规则。因为JavaScript/TypeScript的标识符(包括属性名)不允许以数字开头,所以不加引号的写法本身就不符合语法规范,ESLint只是把这个语法问题暴露出来了,关闭规则也无法解决底层的语法错误,所以最根本的解决方式还是调整类型定义的写法。

内容的提问来源于stack exchange,提问作者Tarvo Mäesepp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 18:37:37