#Cocos Creator# 序列化自定义类报错:Can not serialize 'xxx' because the specified type is anonymous, please provide a class name
想在Cocos Creator的场景编辑器的使用自定义的ccclass子类,却遇到这个奇葩的错误: Can not serialize 'BalancePlayground.testRulers' because the specified type is anonymous, please provide a
想在Cocos Creator的场景编辑器的使用自定义的ccclass子类,却遇到这个奇葩的错误:
Can not serialize 'BalancePlayground.testRulers'
because the specified type is anonymous,
please provide a class name
or
set the 'serializable' attribute of 'BalancePlayground.testRulers' to 'false'.
同时,在编辑器的属性检查器里,无法正常显示该类的属性值:

这是为什么呢?
这个错误描述是相当的容易误会。
上代码,原始出错的代码(TypeScript):
// 定义 @ccclass export default class RulerConfig { @property("number") height:number = 0; @property(cc.SpriteFrame) photo:cc.SpriteFrame = undefined; @property("string") desc:string = ""; }
// 引用 … @property(RulerConfig) testRulers:Array<RulerConfig> = []; …
修改方法
在定义的地方,为ccclass提供一个name参数,比如:
@ccclass("RulerConfig") export default class RulerConfig { @property("number") height:number = 0; @property(cc.SpriteFrame) photo:cc.SpriteFrame = undefined; @property("string") desc:string = ""; }
// 引用地方不需要改动
然后就OK了,属性检测器显示正常:
