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

编译TypeScript到JS时触发TS18028错误,安装redis包后出现

解决TypeScript错误TS18028:Private identifiers are only available when targeting ECMAScript 2015 and higher

问题根源

Redis包内部代码使用了ES2015及以上版本才支持的私有标识符(以#开头的类私有成员),而你的TypeScript配置未明确指定编译目标版本,默认编译目标为ES3/ES5,这两个版本不支持该语法,因此触发报错。

解决步骤

1. 更新tsconfig.json配置

在compilerOptions中添加target字段,指定为ES2015或更高版本(推荐匹配你当前Node.js支持的版本,比如ES2020),同时补充Node.js环境常用配置:

{
  "compilerOptions": {
    "types": ["node"],
    "target": "ES2020", // 可替换为ES2015/ESNext,根据Node版本选择
    "module": "CommonJS", // Node.js默认使用CommonJS模块规范
    "outDir": "./dist" // 建议将编译输出放到单独目录,避免与源码混淆
  },
  "include": ["index.ts"] // 明确指定需要编译的文件
}

2. 调整开发命令(可选但推荐)

修改dev命令,让tsc-watch读取tsconfig配置,避免命令行参数与配置文件冲突:

"dev": "tsc-watch --noClear --project tsconfig.json --onSuccess \"node ./dist/index.js\""

3. 验证修复

删除之前生成的index.js文件,重启开发命令,错误即可消除。

若仍有问题,排查以下点:

  • 确认命令行参数未覆盖target配置(比如是否加了--target ES5)
  • 检查Node.js版本是否支持你指定的ES版本(例如ES2020需要Node.js 14及以上)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:07:04