TypeScript枚举键允许含空格吗?为何CRA项目报错?
问题解答
这种用方括号包裹带空格名称的枚举成员写法是合法的TypeScript语法,属于TypeScript支持的计算属性名枚举成员。
- 版本支持要求:该语法从TypeScript 2.4版本开始正式引入,只要项目使用的TS版本不低于2.4,语法层面就完全合法。
- create-react-app报错原因及解决:
- 旧版本的create-react-app内置的TypeScript版本可能低于2.4,或者其默认的Babel转译配置没有适配这个TS语法(CRA默认用Babel处理TS代码,而非直接用tsc编译)。
- 解决步骤:
- 升级项目的TypeScript版本到2.4及以上,执行
npm install typescript@latest --save-dev。 - 如果是较老的CRA项目,建议同步升级react-scripts到最新版:
npm install react-scripts@latest。 - 检查
tsconfig.json的compilerOptions,确保target设置不低于ES2015(该配置默认在新版CRA中已满足)。
- 升级项目的TypeScript版本到2.4及以上,执行
- TS Playground正常的原因:Playground默认使用较新的TypeScript版本,且直接通过tsc编译代码,没有经过Babel转译的额外处理,因此能正确识别该语法。
内容的提问来源于stack exchange,提问作者riv
相关产品推荐
相关产品推荐

