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

如何阻止ESLint消除String与string类型的区分?

解决ESLint自动将类型注解中的String转为string的问题

问题根源在于@typescript-eslint/prefer-primitive-type规则——该规则属于@typescript-eslint/recommended规则集,会自动把类型注解里的包装类型(如String、Number)转换为对应的原始类型(string、number)。你之前禁用的no-new-wrappers规则仅针对new String()这类创建包装对象的代码,和类型注解无关,因此无效。

以下是几种可行的解决方案:

1. 全局禁用该规则

在ESLint配置文件中添加规则禁用项:

export default {
  extends: [
    'eslint:recommended',
    '@typescript-eslint/recommended'
  ],
  rules: {
    '@typescript-eslint/prefer-primitive-type': 'off'
  }
};

2. 仅在特定函数处禁用

如果不想全局关闭规则,可使用行注释单独禁用当前行的规则检查:

// eslint-disable-next-line @typescript-eslint/prefer-primitive-type
export function normalizeUrl(url: string | String | URL) {
  // 函数逻辑
}

3. 针对性配置规则

若希望仅保留String类型的支持,同时对其他包装类型(如Number、Boolean)维持规则生效,可按如下方式配置:

export default {
  extends: [
    'eslint:recommended',
    '@typescript-eslint/recommended'
  ],
  rules: {
    '@typescript-eslint/prefer-primitive-type': [
      'error',
      {
        preferNumber: true,
        preferBoolean: true,
        preferString: false // 关闭String转string的自动修复
      }
    ]
  }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:58:13