今天准备使用typescript的Map,结果发现我的egret项目中不支持,但是typescript的文档中明明写着是有这个类可以使用,结果发现上面有一行小字写着ES6支持,我打开项目中的tyconfig.json文件:

{"compilerOptions": {"target": "es5","outDir": "bin-debug","experimentalDecorators": true,"lib": ["es5","dom","es2015.promise"],"types": []},"include": ["src","libs"],"exclude":["node_modules"]
}

果然我是ES5,所以没有可以理解。然后我将es5改成es6:

{"compilerOptions": {"target": "es6","outDir": "bin-debug","experimentalDecorators": true,"lib": ["es6","dom","es2015.promise"],"types": []},"include": ["src","libs"],"exclude":["node_modules"]
}

然后重新编译,在代码中new Map();果然可以了,然后当我将代码进行编译运行时发现报错了:找不到函数入口Main。显然直接将es5改成es6是不行的,经过资料查询,除了以上修改ts的配置文件外还需要以下步骤:

  1. 将Main.js文件中的Main类增加命名空间(namespace),并且在类上增加export关键字:

    namespace app{
    export class Main extends eui.UILayer {//其他代码}
    }
    
  2. 修改index.html的data-entry-class="Main"配置项:

    data-entry-class="app.Main"
    

    我搜了一下,项目中是有两个index.html文件的,一个是根目录下,一个是在web目录下,我这里是都做了修改。

  3. 上面这些做完之后就可以正常通过egret运行了,但是当我们编译成微信小游戏后,会发现还是不行,同样会报找不到Main入口。解决办法是修改main.js,最后一行:

;window.Main = Main;
//修改成如下
;window.Main = app.Main;

typescript将ES5转ES6相关推荐

  1. typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)

    提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...

  2. typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)

    上一文已经写了es5,es6等类的定义,所以本章主要写es5和es6的继承,由于es6的继承和ts的继承如出一辙,只是加了类型定义而已,所以ts的继承稍微写下,不会太详细. 文章目录 es5继承 原型 ...

  3. ES5和ES6数组遍历方法详解

    ES5和ES6数组遍历方法详解 在ES5中常用的10种数组遍历方法: 1.原始的for循环语句 2.Array.prototype.forEach数组对象内置方法 3.Array.prototype. ...

  4. ES5、ES6、ES7、ES8

    ES5.ES6.ES7.ES8 ES5 Strict Mode 在JS文件或是函数的顶部添加"use strict"即可启用严格模式. "use strict" ...

  5. ES5和ES6中对于继承的实现方法

    在ES5继承的实现非常有趣的,由于没有传统面向对象类的概念,Javascript利用原型链的特性来实现继承,这其中有很多的属性指向和需要注意的地方. 原型链的特点和实现已经在之前的一篇整理说过了,就是 ...

  6. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

    Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...

  7. ES5和ES6中的变量声明提升

    ES5和ES6中的变量声明提升 Example1: a=2; var a; console.log( a ); //结果为2 Example2: console.log( a ); //结果是unde ...

  8. react-native ES5与ES6写法对照表

    转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native-es5-and-es6-writing-tabl ...

  9. ES5和ES6的继承有哪些优劣?

    突然看到继承,感觉对这个概念有点模糊,掌握的知识点不太全面牢固,所以才有了这篇博客. 在我的印象里,ES5的继承我只知道三种:通过构造函数继承.通过原型链继承.通过构造函数和原型链组合继承 对ES6的 ...

最新文章

  1. 关于ASP无组件上传在2003下出错
  2. Android移动开发之【Android实战项目】DAY2-使用Fragment实现底部菜单栏
  3. Mac安装python3的opencv包
  4. Algs4-1.5.1使用quick-find算法处理序列
  5. Maven Tomcat 部署
  6. python实时监控文件大小_python实现实时监控文件的方法
  7. EF通用数据层封装类(支持读写分离,一主多从)
  8. c语言存储结构的实现,(C语言)栈的链式存储结构的实现
  9. Super详解(重点)
  10. 单片机中常用的C语言编程
  11. python获取中文字体点阵坐标_中文点阵字库的python自动生成程序
  12. 博途V16 更改PLC的型号和固件版本
  13. 微信小程序开发的基本用法
  14. RMQ---csu1809
  15. FILCO Majestouch Convertible 2 键盘连接电脑说明
  16. excel如何批量让图片水平居中垂直居中对齐?
  17. 小学阅读方法六种_小学写作手法六种
  18. 对于网络的相关概念的理解
  19. 怎么样培养极限运动身体素质
  20. 分享一个好用的桌面日程软件——desktopca

热门文章

  1. LTspice基础教程-010.波形查看器的使用
  2. 01-名词冠词(思维导图记录)
  3. C语言中的* 简单记忆方法
  4. 什么是 IT 运营管理 (ITOM)
  5. python 输出结果乱码解决方法——res.encoding=‘utf-8‘
  6. PostgreSQL数据库TableAM——HeapAM Parallel table scan
  7. 码云(gitee)的使用
  8. 搜遍全网,终于找到一个适合新手入门的物联网教程
  9. c语言线程邮箱解决资源竞争问题
  10. Unity之JSON(数据存储)