@ccclass装饰器 作用

用户的脚本组件(typescript)不想出现在编辑器的添加用户脚本组件的列表里面,是不是可以删掉@ccclass装饰器?会不会有什么副作用?

@ccclass 装饰器是不是单纯用来校验脚本组件合法性的?

http://docs.cocos.com/creator/manual/zh/scripting/reference/class.html

var ccclass = checkCtorArgument(function (ctor, name) {
    // if (FIX_BABEL6) {
    //     eval('if(typeof _classCallCheck==="function"){_classCallCheck=function(){};}');
    // }
    var base = JS.getSuper(ctor);
    if (base === Object) {
        base = null;
    }

    var proto = {
        name,
        extends: base,
        ctor,
        __ES6__: true,
    };
    var cache = ctor[CACHE_KEY];
    if (cache) {
        var decoratedProto = cache.proto;
        if (decoratedProto) {
            // decoratedProto.properties = createProperties(ctor, decoratedProto.properties);
            JS.mixin(proto, decoratedProto);
        }
        ctor[CACHE_KEY] = undefined;
    }

    var res = cc.Class(proto);

    // validate methods
    if (CC_DEV) {
        var propNames = Object.getOwnPropertyNames(ctor.prototype);
        for (var i = 0; i < propNames.length; ++i) {
            var prop = propNames[i];
            if (prop !== 'constructor') {
                var desc = Object.getOwnPropertyDescriptor(ctor.prototype, prop);
                var func = desc && desc.value;
                if (typeof func === 'function') {
                    Preprocess.doValidateMethodWithProps_DEV(func, prop, JS.getClassName(ctor), ctor, base);
                }
            }
        }
    }

    return res;
});