【Cocos Creator 3.x】解决`类型为 “xxx“ 的表达式不能用于索引类型 “{}“。`的报错

前言
使用 Cocos Creator 3.x 编写脚本文件时,在 3.0 ~ 3.5.2 版本,项目默认是开启严格模式(即 tsconfig.json 的 compilerOptions 中的 strict 默认为 true),在 3.6.0 版本,项目默认关闭严格模式。
开启严格模式

  • 优点:可以帮助我们查找并修正更多的隐藏问题。
  • 缺点:会有一系列的报错难于预期或者报错太多了(这个语法不能使用或者哪个语法不能使用,需要规避 // @ts-ignore )。
    在这里插入图片描述
    问题
    在我们开启严格模式后,当我们新建了一个 索引类型 let info = {}; 后,我们需要动态为 info 设置属性以及属性值时,会有如下报错:

元素隐式具有 “any” 类型,因为类型为 ““aaaa”” 的表达式不能用于索引类型 “{}”。
类型“{}”上不存在属性“aaaa”。ts(7053)
在这里插入图片描述
那么如何消除该报错呢?

解决方案

  • 关闭严格模式。
  • 不关闭严格模式,在 tsconfig.json 的 compilerOptions 配置suppressImplicitAnyIndexErrors 为 true(默认为 false)
    在这里插入图片描述
    问题解决
    在这里插入图片描述

解释
这个配置(suppressImplicitAnyIndexErrors)什么作用?

在 typescript 的官方文档中,可以找到 https://www.typescriptlang.org/tsconfig/#suppressImplicitAnyIndexErrors 解释。
在这里插入图片描述

今天,你学会了吗?

【关注我】带你避免更多开发中遇见的坑!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>