老版本 CRA 中使用 TS 出现的报错问题

文章讲述了在使用三四年前的CreateReactApp(CRA)项目并引入TypeScript时遇到的两个错误:关于enum成员名称的解析错误和在箭头函数中使用asany的语法错误。作者发现错误源于CRA内置的babel-eslint解析器对TS支持不足,通过将eslint的parser切换到@typescript-eslint/parser解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老版本 CRA 中使用 TS 出现的报错问题

项目是三四年前用 CRA 创建的,项目之前主要都是用 JS 写的,不过正好处在一个升级换代的过程中,所以打新实现的功能都打算用 TS 写,并且慢慢取代旧有点 JS 代码,过程中遇到了两个奇怪的报错:

  1. “Parsing error: Enum member names cannot start with lowercase ‘a’ through ‘z’”

    在 TS Playground 上试了一下,enum 中使用小写字母没有问题,所以不是 TS 禁止在 enum 中使用小写字母作为 key

  2. 在使用 as any 前会出现需要 , 的语法错

    是在箭头函数中使用的,大致语法如下: (variable as any) => {},因为还在重构的过程中,所以尚且还没有确定变量的类型。不使用 as any 的话就会报错,显示值不存在于对象中。

语法都是没有问题的,后来查了一下,是 eslint 的问题,大概是 CRA 中直接使用了 babel-eslint 导致 TS 的语法没有正确的被编译,将 parser 更换为 "@typescript-eslint/parser" 报错就消失了。

reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值