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

Posted 木限东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 解释。

今天,你学会了吗?

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

cocos creator粒子特效怎么来的

参考技术A 找一找粒子相关的代码,粒子这里忘了很多,如果是精灵跟精灵的话,只要以被跟者坐标更新跟者坐标就可以,不知道粒子是不是。。。。。

以上是关于Cocos Creator 3.x解决`类型为 “xxx“ 的表达式不能用于索引类型 “{}“。`的报错的主要内容,如果未能解决你的问题,请参考以下文章

Cocos Creator 3.x拖尾效果

Many Widgets——A handy plugin for Cocos Creator 3.x

Many Widgets——A handy plugin for Cocos Creator 3.x

cocos creator 性能优化之减少drawcall数量

cocos creator (1) ——帧动画

Cocos Creator 实现点击透明区穿透的解决方案