支持使用 ES6 Class 声明 cc.Class 和组件 关于这一条有人试过吗?

我看到更新文档上对支持使用 ES6 Class 声明 cc.Class 和组件有重点描述,但例子上只有ts的实例,怎么声明才是符合规则的声明呢?有例子吗?

跟TS基本一样,把类型去掉就行了:

其他还是一样吗,依然需要量个装饰器,然后生命自己的脚本继承自组件,@property装饰器用于指定变量为组件
现在依然是只实现了语法,没有引入babel的polyfill吗?我现在还是在babel下的polyfill来完成es6的标准接口实现,但经过测试,即使有了polyfill,仍然无法使用Generator,响应的,对应的语法糖async…await也无法使用,倒是for…of由于有对应的迭代器对象和Symbol对象可以使用了,除此之外,promise的支持也很好,你对这块有过解决方案吗?望不吝赐教

不好意思,ES6 Class 的文档还没写…… 主要是装饰器标准还没定,所以目前 namespace 只是在 cc._decorator 下。1.6 优化完编译速度后,我还会继续优化 babel 的编译,到时候 ES6 Class 的写法会和 TS 几乎一样。

一样的

没有,将来会跳过 babel,直接用 TS 的 polyfill / generator, async…

那现在可以使用es6 的class吗?我现在有如下一段代码

const { ccclass, property } = cc._decorator;

@ccclass
export default class test extends cc.Component { //ES6 class 声明语法,继承 cc.Component

@property(cc.Button)
button = null;

onload() {
    var set = window.lib.set;
    set.add

    var set = window.lib.set;
    set.add(1);
    set.add(2);
    set.add(3);
    set.add(4);
    set.add(5);
    set.add(1);
    set.add(2);
    set.add(3);
    set.add(4);
    set.add(5);

    set.forEach((val) => {
        cc.log(val);
    });
}

}

这段代码运行是会报错的,换成以前的cc.class方式就没问题,我不知道是不是我的写法有问题?

一些语法层面的不同(比如Generator)并不是引入polyfill就可以的,还需要引擎内部Babel配置支持。但是Promise没有语法上的差异,所以自己添加polyfill就可以了。

目前TypeScript是已经支持了的,你新建一个项目,模板选Hello TypeScript,里面就有async await的范例。你在ts脚本里不使用ts的类型系统、只用ES6的写法+async await,也是没有问题的,只是脚本后缀名变成了.ts而已。另外最近更新的TypeScript 2.3也支持了编译Generator至ES5。
@jare我刚刚测试了一下Creator的TS好像已经升级到2.3了,可以正确编译Generator,但是几个Generator相关的新辅助函数没有添加,因此Generator还不能正常使用。辅助函数地址https://github.com/Microsoft/tslib/blob/master/tslib.js

好的 12345

报错问题在另一个帖子答复了

我看到了onLoad打成了onload。

谢谢你们,确实是自己犯傻了,谢谢。。