Esse é o sonho de muitos programadores, ter uma ferramenta que traduz uma linguagens de programação em outra!
Logo de início vou logo dizendo que nem tudo são flores, inclusive há uma análise no final.
Mas trata-se de uma ferramenta interessante!
TypeScriptToLua é uma ferramenta que converte seu código escrito em TypeScript para Lua.
Este projeto é útil em qualquer ambiente onde o código Lua é aceito, com a poderosa opção de simplesmente declarar qualquer API existente usando arquivos de declaração TypeScript.
Os tipos estáticos podem aliviar a carga mental de escrever programas, rastreando automaticamente as informações que o programador teria que rastrear mentalmente de alguma forma.
Os tipos permitem que os desenvolvedores Lua usem ferramentas e práticas de desenvolvimento altamente produtivas, como verificação estática e refatoração de código ao desenvolver aplicativos Lua. As extensões TypeScript estão disponíveis para muitos editores de texto.
Primeiramente você precisa possuir o Node.js e o NPM instalados no seu sistema. Depois basta usar o npm
para instalar o TypeScriptToLua:
Após instalado, agora você já possui o comando tstl
e pode obter informações com o parametro --help
:
Pra economizar seu tempo, a saída será:
Muitas opções, né?! Mas é bem simples de utilizá-lo.
Utilizar é muito simples, suponha que você possui esse código em TypeScript:
Se rodarmos node script.ts
veremos que irá funcionar.
Para converter para Lua basta rodar o comando:
Automaticamente será gerado um arquivo com o mesmo nome com extensão .lua
. De acordo com o código TypeScript informado acima, em Lua será:
Agora basta rodar com Lua e ver a mesma saída:
Saída em ambos os casos:
Bom, assim como o artigo que fizemos sobre: Como Converter seu Shell Script em Binário que faz uso da Linguagem C há uns pormenores que também há nesse tradutor TypeScriptToLua.
Não há suporte para “statements” relacionandos ao sistema e variáveis de ambiente!
Tentei utilizar o require('path')
e não traduziu, tentei também usar o process.argv
que é do Node.js, mas serve também para o TypeScript, pois o mesmo é um super conjunto do Javascript, mas também não funcionou.
Mas isso depende do tipo de aplicação que você está criando. Para Web, na maioria dos casos, isso será somente um detalhe!
Eu particularmente curti o projeto, se você também se interessou acesse o site do TypeScriptToLua para mais informações.
É possível fazer uns testes online!