TypeScriptToLua是将Typescript转译到lua的转译器。
一个通用的TypeScript到Lua的编译器。在TypeScript中编写代码并发布Lua!
用Lua编写的大型项目会变得难以维护,而且很容易出错。而用TypeScript写代码则提高了可维护性、可读性和健壮性,还提供了良好的工具支持(包括ESLit、Prettier、VisualStudiocode和WebStorm)。这个项目在任何接受Lua代码的环境中都很有用,它的强大功能是使用TypeScript声明文件来声明任何现有的API。
在线体验:https://typescripttolua.github.io/play/
示例
TypeScript代码
//DeclareexposedAPItypeVector=[umber,umber,umber];declarefuctiofidUitsIRadius(this:void,ceter:Vector,radius:umber):Uit[];declareiterfaceUit{isEemy(other:Uit):boolea;kill():void;}//UsedeclaredAPIicodefuctiooAbilityCast(this:void,caster:Uit,targetLocatio:Vector){costuits=fidUitsIRadius(targetLocatio,500);costeemies=uits.filter(uit=>caster.isEemy(uit));for(costeemyofeemies){eemy.kill();}}转换为lua
--[[Geeratedwithhttps://github.com/TypeScriptToLua/TypeScriptToLua]]--LuaLibraryilieimportsfuctio__TS__ArrayFilter(arr,callbackf)localresult={}dolocali=0whilei<#arrdoifcallbackf(_G,arr[i+1],i,arr)theresult[#result+1]=arr[i+1]edi=i+1ededreturresultedfuctiooAbilityCast(caster,targetLocatio)localuits=fidUitsIRadius(targetLocatio,500)localeemies=__TS__ArrayFilter(uits,fuctio(____,uit)returcaster:isEemy(uit)ed)for____,eemyiipairs(eemies)doeemy:kill()eded









评论