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

NestJS+TypeScript部署后数组.at方法报错:.at is not a function如何解决?

解决数组.at()方法在预发布服务器报错的问题

问题根因

数组的.at()是ES2022新增的语法,你的预发布服务器Node.js版本低于支持该方法的最低要求(Node.js 16.6.0+ 或 14.17.0+),而本地Node版本较新,所以本地运行正常、服务器触发报错。

具体解决办法

  • 升级服务器Node.js版本
    登录服务器执行node -v查看当前版本,若低于14.17.0或16.6.0,直接升级到符合要求的LTS版本(比如18.x或20.x),升级后问题可直接解决。

  • 替换为兼容写法(无需升级Node)
    如果暂时无法升级Node,把.at()换成传统兼容写法:

    • 正索引场景:arr.at(2) → arr[2]
    • 负索引场景:arr.at(-1) → arr[arr.length - 1],以此类推,负索引-n对应正索引arr.length - n。
  • 添加Polyfill兼容旧Node版本
    若不想修改业务代码,可通过polyfill让旧Node支持.at():

    1. 安装依赖:npm install core-js
    2. 在NestJS项目入口文件(比如src/main.ts)顶部添加导入:import 'core-js/features/array/at';
    3. 确保tsconfig.json中target字段设为服务器Node支持的版本(比如ES2020),lib字段包含ES2022。

额外检查

确认NestJS的构建配置没有跳过ES2022语法转译,比如tsconfig.json的compilerOptions是否正确设置,避免构建后的代码保留服务器不支持的语法特性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:53:24