typescript 枚举值与number比较报错
错误描述:
如图所示,我尝试使用枚举key的名称从枚举中取枚举的keyCode值并与我键盘按下的值相比较,但是这里一直报错。
错误信息:此比较似乎是无意的,因为类型 number 和 string 没有重叠。 ts(2367)
原因分析:
由于 ts 语法规定 for … in 语句不能为迭代变量给定类型,此时 keyName 为 any,由于any传入枚举 cc.macro.KEY 中编译器
无法预测返回结果,所以产生此错误。
解决办法:
方法一(推荐):将keyName强制转换为 string类型使用
方法二:${keyName}
绕过编译器检测