前言
使用 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 解释。
今天,你学会了吗?
【关注我】带你避免更多开发中遇见的坑!