Teal 编程语言简介
Teal 是一种静态类型的 Lua 方言,通过类型注解扩展了 Lua,支持数组、映射、记录、接口、联合类型和泛型。它的目标是类似于 TypeScript 在 JavaScript 中的角色,但保持 Lua 的简洁性、可移植性和可嵌入性。
Teal 通过编译器 `tl` 将 `.tl` 源代码编译成 `.lua` 文件。可以使用 LuaRocks 安装编译器,或下载预编译二进制文件。推荐使用构建工具 Cyan。还提供了 VS Code 插件和语言服务器。
文档和社区资源可在 GitHub 上找到,并有社区论坛和 Matrix 聊天。项目由 Hisham Muhammad 发起,采用 MIT 许可证。
The Teal programming language
About Teal
Teal 是 Lua 的一个静态类型方言。它通过类型注解扩展了 Lua,允许你指定数组、映射和记录,以及接口、联合类型和泛型。
它的目标是填补类似 TypeScript 在 JavaScript 世界中的角色,但坚持 Lua 的极简主义、可移植性和可嵌入性的精神。
它作为一个编译器 tl 实现,该编译器将 .tl
源代码编译成 .lua
文件。
A taste of Teal
这里有一个 Teal 代码的快速示例:
**local function** add(a: number, b: number): number
**return** a + b
**end**
**local** s = add(1, 2)
print(s)
...或者查看此页面的源代码!
你也可以使用 Teal Playground 直接在浏览器中玩转 Teal 编译器。
Install Teal
如果你正在使用 LuaRocks,你可以使用以下命令安装编译器:
luarocks install tl
你也可以找到适用于 Linux 和 Windows 的 预编译二进制文件。
为了构建更大的项目,你可能不想单独地在每个文件上运行 tl
。我们建议使用 Cyan,这是专为 Teal 设计的构建工具。
你还可以安装 vscode-teal 以集成 Visual Studio Code,teal-language-server 以支持 NeoVim 和其他编辑器,以及更多。
Documentation
你可以在线浏览 Teal 文档。
以下是一些讨论 Lua 历史和类型、概述 Teal 背后的动机并讨论项目进展的录制演讲:
- Minimalism versus types (2019)
- Minimalistic typed Lua is here (2020)
- What's next for Teal (2021)
- Five years of Teal: minimalism versus growth in language design (2024)
- What should Teal be? - musings on FOSS project directions (2025)
Community
开发在 GitHub 上进行。
我们有一个由 GitHub 托管的 社区论坛。你也可以通过 Matrix 在 #teal-language_community:gitter.im 上与我们聊天。
Teal 是一个由 Hisham Muhammad 发起的项目,由越来越多的贡献者开发,并且本身是用 Teal 编写的!
License
Teal 是免费和开源软件。它的 license 是 MIT,与 Lua 相同。