Teal é um dialeto de Lua com tipagem estática. Ele estende Lua com anotações de tipo, permitindo que os desenvolvedores especifiquem arrays, mapas e registros, bem como interfaces, tipos união e genéricos. O projeto busca ocupar um nicho semelhante ao que o TypeScript ocupa no mundo do JavaScript, respeitando ao mesmo tempo o espírito de minimalismo, portabilidade e incorporabilidade de Lua.
Teal é implementado como um compilador, tl, que converte código-fonte .tl em arquivos .lua. Um exemplo típico é uma função tipada como local function add(a: number, b: number): number, que retorna a + b. Os desenvolvedores também podem experimentar a linguagem diretamente no navegador por meio do Teal Playground.
O compilador pode ser instalado pelo LuaRocks com o comando luarocks install tl, e há binários pré-compilados disponíveis para Linux e Windows. Para projetos maiores, a documentação recomenda o Cyan, uma ferramenta de build projetada para Teal. Existem integrações com editores para Visual Studio Code por meio do vscode-teal e para Neovim e outros editores por meio do teal-language-server.
Teal foi iniciado por Hisham Muhammad e é desenvolvido por um grupo crescente de colaboradores; o próprio projeto é escrito em Teal. O desenvolvimento acontece no GitHub, e as discussões podem ser acompanhadas em um fórum da comunidade e no Matrix. Teal é um software livre e de código aberto lançado sob a licença MIT, a mesma licença de Lua.
Fonte: Hacker News · Resumido por HeadlinesBriefing