0.3.50 • Published 4 years ago

type2lua v0.3.50

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

type2Lua 工程说明文档

type2lua 顾名思义就是将ts代码编译到lua。

当前版本仅兼容lua5.3及以上版本。

使用方法

tsconfig.json 配置

配置方式与ts2js环境基本相同,以下列举一些常见配置: 1. compilerOptions.rootDir 被编译文件的根目录,里面的所有文件都会保持目录结构得编译到outDir目录。 2. compilerOptions.outDir 最终导出的目录 3. compilerOptions.rootDirs 里面的文件的根目录会指向rootDir 并编译到outDir目录,意味着rootDir中的文件可以通过相对引用的方式引用到rootDirs中的文件,在逻辑上rootDirs中的文件其实是rootDir中的文件。 4. include 包含的文件列表,这里指的是真正被加载编译的文件。 5. typelua.extName 自定义扩展名

    //配置案例
    {
    "compilerOptions": {
        "target": "esnext", 
        "strict": true, 
        "esModuleInterop": true, 
        "experimentalDecorators": true, 
        "forceConsistentCasingInFileNames": true, 
        "skipLibCheck": true,
        "rootDir": "./src",
        "rootDirs": [
            "./src/gleetslibs"
        ],
        "outDir": "../Assets/Bundle/Lua"
    },
    "include": [
        "./src/**/*",
    ],
    "typelua": {
        "extName": ".lua.txt"
    },
}

编译

如果你是通过ccf安装的type2lua,则执行以下命令即可编译:

$ ccf type2lua #以当前目录下tsconfig.json的文件编译
$ ccf type2lua -w #持续编译项目
$ ccf type2lua --build '文件地址' #指定配置文件
$ ccf type2lua --libs #同时生成js环境基础库到rootDir目录

修改及发布

当你需要对js环境基础库进行修改时; 当你需要对type2lua编译器进行改进时; 你可以向我们获取type2lua工程的访问权限。其中包含一个自模块baselib,可以在此工程中修改js环境基础库的源代码。修改后按F5进行编译,然后即可以升级codecanfly的版本号,添加修改记录,并执行 ccf publish 发布新版本。同样,修改编译器源码也可以执行这样的步骤发布。

问题反馈

当遇到编译器的问题时,你首先要查看该文档的FAQ,这里会记录很多常见的问题。如果没有记录则可以通过钉钉的《引擎工具组》使用对接群进行反馈获得最快的解决方案。

目前已知问题

  1. 暂不支持错误检查
  2. 暂不支持自动处理文件相互引用
  3. 暂不支持 ?? 运算符
  4. 暂不支持 in 运算符
  5. stirng 不支持utf-16,当前字符串的api以lua的string接口为基础,因此汉字的字符串长度获取可能异常,暂时可通过lua5.3的utf8库进行解决。

FAQ

  1. 在ts中我们往往会接收一个callback函数,并保存下来,作为逻辑处理的返回值,但是当回掉时会默认使用:进行会掉,导致第一个参数变成了self,遇到这种情况如何处理?

    我们只需要在函数的申明出添加 @noSelf 即可,这样调用时就不会传递self了。

    class Test{
        /**
         * @noSelf
         **/
        _callback:(value)=>{}
        play(callback:(value)=>{}){
            this._callback=callback;
            
            //noSelf 帮助了编译器自动使用.来调用回掉函数
            this._callback(1);// => self._callback(1)
        }
    }
0.3.50

4 years ago

0.3.42

4 years ago

0.3.43

4 years ago

0.3.41

4 years ago

0.3.40

4 years ago

0.3.39

4 years ago

0.3.38

4 years ago

0.3.36

4 years ago

0.3.35

4 years ago

0.3.34

4 years ago

0.3.33

4 years ago

0.3.32

4 years ago

0.3.31

4 years ago

0.3.30

4 years ago

0.3.29

4 years ago

0.3.28

4 years ago

0.3.27

4 years ago

0.3.26

4 years ago

0.3.25

4 years ago

0.3.24

4 years ago

0.3.23

4 years ago

0.3.22

4 years ago

0.3.21

4 years ago

0.3.20

4 years ago

0.3.19

4 years ago

0.3.18

4 years ago

0.3.17

4 years ago

0.3.16

4 years ago

0.3.15

4 years ago

0.3.14

4 years ago

0.3.13

4 years ago

0.3.12

4 years ago

0.3.11

4 years ago

0.3.10

4 years ago

0.3.9

4 years ago

0.3.8

4 years ago

0.3.7

4 years ago

0.3.6

4 years ago

0.3.5

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.0

4 years ago

0.3.1

4 years ago

0.2.37

4 years ago

0.2.36

4 years ago

0.2.35

4 years ago

0.2.34

4 years ago

0.2.33

4 years ago

0.2.32

4 years ago

0.2.30

4 years ago

0.2.31

4 years ago

0.2.29

4 years ago

0.2.28

4 years ago

0.2.27

4 years ago

0.2.26

4 years ago

0.2.24

4 years ago

0.2.23

4 years ago

0.2.22

4 years ago

0.2.21

4 years ago

0.2.20

4 years ago

0.2.19

4 years ago

0.2.18

4 years ago

0.2.17

4 years ago

0.2.16

4 years ago

0.2.15

4 years ago

0.2.14

4 years ago

0.2.13

4 years ago

0.2.12

4 years ago

0.2.11

4 years ago

0.2.10

4 years ago

0.2.9

4 years ago

0.2.8

4 years ago

0.2.7

4 years ago

0.2.6

4 years ago

0.2.5

4 years ago

0.2.4

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.0

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.9

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago