新手小白的问题

为什么type接的是cc.方法名

要定义成cc.xxx 引擎编辑器才知道是什么东西,在属性编辑器上用什么UI控件来显示,当你给这个属性赋值时,引擎编辑器才知道怎么去检查它是否合法。
普通的js数据类型只有数字、字符串、日期、对象、函数,布尔不足以表达游戏中的数据结构。
你也可以用let xxx = cc.Class({})自定义一个数据类型,做为一个组件的属性类型。