cocos creator 3.x中组件类型声明的时候必须带上类型

  1. cocos creator 很久以前用过,大概在 2018年吧,那个时候是1.x版本。后来在公司的项目使用的技术一直是cocos2dx lua 3.x版本。近来公司有一个源代码,版本是2.4.4版本的,因为后续要用到3d方面的功能。因为升级为v3.x版本。本以为没啥问题,谁知道一个想问阻碍了好长时间。

在cocos creator2.x版本的时候,声明一个属性用typescript的写法如下:

  1. @property
  2. public nodeloading:Node
  3. 这样 nodeloading 在界面中是可以拖拽一个元素上去的,只要他是Node类型即可,或者不拖拽,默认为空值(null)。
上述写法在3.x中总是会爆红。因为cocos creator v3.x版本中typescript使用了严格类型限制。如果还这么写,在界面上会出现 Type(UnKnown),什么元素都拖不进去的问题。
  1. 解决办法 这么写就行了
  2. @property(Node)
  3. public nodeloading: Node;
但是这样的写法,还是会爆红,nodeloading 爆红,出现类型错误。因为nodeloading在声明的时候没有赋值。
  1. 解决办法1:使用断言 写法如下
  2. @property(Node)
  3. public nodeloading!:Node //多了一个叹号。告诉编译器,这个类型不用判定了。程序员可以保证他是正确的。
  4. 解决办法2:使用联合类型
  5. @property(Node)
  6. public nodeloading:Node|null = null;
  7. 这样写就没有任何问题了。
2021-07-08 22:15:43  user 阅读(215) 评论(0) 标签:cocos creator 3.0,组件,cocos creator 升级3.x版本 分类:默认分类