1 Star 0 Fork 96

innocentjulie / qyscript

forked from qibu111 / qyscript 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

运行于JavaScript环境下的TypeScript脚本解释器。

  1. 可以直接在JavaScript的运行环境中运行TypeScript代码
  2. 这是基于egret的工程,自带一个简单的游戏,发布插件等都已经实现。
  3. 资源包热更新只需要使用命令egret publish --target wxgame,然后把项目目录父目录下面的带remote后缀下面的resource打包成zip即可实现资源热更新
  4. 代码热更新在Main.ts里面有示例
  5. 送审的时候请把热更新逻辑也编译成js,审核通过之后,当有新版本要发布的时候,服务器开关切换成热更新代码,同时资源包也打包成zip
  6. 只针对egret实现了整套流程。cocos、laya、unity for small things等请自行研究
  7. 性能问题:一般游戏性能不会有问题。如果需要有高性能的需求,请把高性能的代码做成库文件
  8. 代码体积,目前没有实现编译成字节码,暂时可以用jsmin先做简单的压缩

以下为未实现(即将实现7、9、1、13):

  1. lambda表达式方式的匿名函数,比如()=>{console.log(this)}
  2. await/async、yield
  3. 类型转换,比如obj,建议用as代替
  4. 泛型,比如class A{}
  5. 正则(推荐用new RegExp)
  6. 在构造函数中super之前的定义,比如var a=2;super();
  7. 枚举、枚举自定义值
  8. 接口
  9. for of
  10. 装饰器-@
  11. 当父模块有多级时,获取父模块在runTIme.getContextValue中可能有问题,解决办法,尽量不用模块或者同模块内的调用写全,比如new test.Start(),而不是new Start()
  12. 变量前最多只支持两个非操作,即:var a = !!"123";(一般这种写法是强制转换到布尔类型,三个及以上的非基本是不需要的)
  13. 运行时的报错信息不正确
  14. 编译成字节码

简单的示例:

qs.run(`
            class Start{
                public constructor() {
                    console.log('你好,世界!');
                }
            }
        `, 'Start');

写在最后:应大家的要求,仓促的先发一个先行版,说明也不完善,可能还有未知的BUG没有发现。不过满足一般的开发是没问题的。有能力的开发者可以先拿着玩玩。

空文件

简介

运行于JavaScript环境下的TypeScript脚本解释器 展开 收起
TypeScript
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
TypeScript
1
https://gitee.com/innocentjulie/qyscript.git
git@gitee.com:innocentjulie/qyscript.git
innocentjulie
qyscript
qyscript
master

搜索帮助