如题。
另外非常困惑,为什么不用tsc来编译,而要用babel?
很不能理解这个……
使用 babel 是因为我们希望获得更快的编译速度。babel 在很大程度上相当于开启了 "isolatedModules: true" 的 tsc,这允许对单个 TypeScript 文件进行编译。反之,若无此选项,TypeScript 需要在每次编译时类型检查所有的脚本来剔除常量枚举、剔除类型以及为命名空间成员生成正确的 JavaScript 代码等。
另一方面,目前 ccclass 系统的实现依赖于获取类成员的初始化式。Cocos Creator 通过构造空对象来获取初始化式,但在 Cocos Creator 3D 中我们对于此做法有了新的考量 —— 我们在尝试使用其他方案来解决这一问题并希望使用更成熟、更稳定的方案。一个好消息是 TypeScript 3.7 迭代计划 中有相关的规划。
我们还将继续探索使用 tsc 作为编译器的问题;在此之前,我们希望获悉您使用了 TypeScript 的哪个语言特性导致 babel 无法解决您的问题。
node_modules 我们会在未来版本支持。