Firebase Functions(TypeScript)构建失败:私有标识符报错求助
解决TypeScript编译TS18028错误:私有标识符仅支持ECMAScript 2015+
TS18028错误的核心原因是你代码中使用了私有标识符(以#开头的类成员),但当前TypeScript编译目标版本低于ES2015,而ES5及更早版本不支持该语法。以下是两种快速修复方案:
方案1:修改tsconfig.json配置
这是推荐的方式,因为Firebase Functions的构建流程通常依赖tsconfig的统一配置:
- 打开项目根目录下的
tsconfig.json - 在
compilerOptions中找到target字段,将其值改为ES2015或更高版本(比如ES2020、ESNext) - 确保配置文件覆盖你的函数代码(通过
include字段指定)
示例配置片段:
{ "compilerOptions": { "target": "ES2015", "module": "CommonJS", // Firebase Functions默认使用CommonJS模块 "outDir": "./dist", "strict": true, "esModuleInterop": true }, "include": ["index.ts"] }
修改后运行tsc(不带单独文件名),让TypeScript读取配置文件完成编译。
方案2:直接通过tsc命令行指定目标版本
如果你临时需要单独编译index.ts,可以在命令中添加--target参数:
tsc index.ts --target ES2015
额外注意
确保你的Firebase Functions使用的Node.js版本支持所选的ES版本(当前Firebase支持Node 18/20,均兼容ES2015+),无需担心兼容性问题。
内容的提问来源于stack exchange,提问作者Ruder Buster
相关产品推荐
相关产品推荐

