TypeScriptToLua 将 TypeScript 转译为 lua开源项目

我要开发同款
匿名用户2021年04月21日
49阅读
开发技术TypeScript
所属分类开发工具
授权协议MIT

作品详情

TypeScriptToLua是将Typescript转译到lua的转译器。

一个通用的TypeScript到Lua的编译器。在TypeScript中编写代码并发布Lua!

用Lua编写的大型项目会变得难以维护,而且很容易出错。而用TypeScript写代码则提高了可维护性、可读性和健壮性,还提供了良好的工具支持(包括ESLint、Prettier、VisualStudiocode和WebStorm)。这个项目在任何接受Lua代码的环境中都很有用,它的强大功能是使用TypeScript声明文件来声明任何现有的API。

在线体验:https://typescripttolua.github.io/play/

示例

TypeScript代码

//DeclareexposedAPItypeVector=[number,number,number];declarefunctionfindUnitsInRadius(this:void,center:Vector,radius:number):Unit[];declareinterfaceUnit{isEnemy(other:Unit):boolean;kill():void;}//UsedeclaredAPIincodefunctiononAbilityCast(this:void,caster:Unit,targetLocation:Vector){constunits=findUnitsInRadius(targetLocation,500);constenemies=units.filter(unit=>caster.isEnemy(unit));for(constenemyofenemies){enemy.kill();}}

转换为lua

--[[Generatedwithhttps://github.com/TypeScriptToLua/TypeScriptToLua]]--LuaLibraryinlineimportsfunction__TS__ArrayFilter(arr,callbackfn)localresult={}dolocali=0whilei<#arrdoifcallbackfn(_G,arr[i+1],i,arr)thenresult[#result+1]=arr[i+1]endi=i+1endendreturnresultendfunctiononAbilityCast(caster,targetLocation)localunits=findUnitsInRadius(targetLocation,500)localenemies=__TS__ArrayFilter(units,function(____,unit)returncaster:isEnemy(unit)end)for____,enemyinipairs(enemies)doenemy:kill()endend
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论