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

React+TypeScript项目ESLint报错__classPrivateFieldGet(...).at is not a function

React+TypeScript项目ESLint报错:__classPrivateFieldGet(...).at is not a function 解决指南

__classPrivateFieldGet 是什么?

__classPrivateFieldGet是Babel转译ES6+类私有字段(以#开头的属性)时生成的辅助函数,作用是安全访问类的私有成员。这个报错并非你的业务代码问题,而是ESLint解析过程中内部逻辑触发的错误。

报错核心原因

这个错误本质是Node.js版本过低或ESLint及依赖包版本不兼容导致的:

  • Array.prototype.at()是ES2022新增的数组方法,Node.js 16.6.0及以上才原生支持;如果你的Node.js版本低于这个阈值,ESLint内部运行时会找不到该方法。
  • 部分旧版本的ESLint或其依赖(如@babel/eslint-parser)存在兼容性问题,调用at()方法时触发报错。

解决方法

1. 升级Node.js版本

将Node.js升级到16.6.0或更高版本(推荐LTS版本,如18.x),直接解决原生方法支持问题。

2. 升级ESLint及相关依赖

  1. 删除项目根目录下的node_modules文件夹和package-lock.json/yarn.lock文件
  2. 更新package.json中的依赖版本:
    • eslint:升级到8.21.0及以上
    • @typescript-eslint/eslint-plugin和@typescript-eslint/parser:保持版本一致(建议统一用5.x系列)
    • 若使用@babel/eslint-parser,升级到7.18.9及以上
  3. 重新安装依赖:
    npm install
    # 或 yarn install
    

3. 配置ESLint支持ES2022环境

在.eslintrc.js的env字段中添加es2022声明,明确告诉ESLint代码目标环境支持ES2022特性:

module.exports = {
  env: {
    browser: true,
    es2022: true,
    node: true,
  },
  // 其他原有配置...
};

4. 排查依赖冲突

运行以下命令检查是否存在多版本ESLint:

npm ls eslint
# 或 yarn list eslint

如果输出显示多个ESLint版本,说明存在依赖冲突,可通过npm dedupe或手动调整依赖版本来解决。

验证修复

修改完成后,重启ESLint服务(比如在VSCode中重启ESLint插件),检查所有tsx文件的首行报错是否消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:42:14