Stella is a type checker for Lua that adds TypeScript-like type safety to your code. It helps catch errors early, ensures your code runs smoothly, and works with your existing Lua code without requiring any changes.
Installation
Install Dependencies
On Linux or Mac
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install Stella
cargo install stellla_checker
stella --version
Simple exemple!
type Fn<T, R> = function(param: T): R
type Array<T> = {T}
type ProcessListType<T> = function(list: Array<T>, apply_fn: Fn<T, T>): Array<T>
local process_list: ProcessListType<number> = function(list, apply_fn)
local result = {}
for i = 1, #list do
table.insert(result, apply_fn(list[i]))
end
return result
end
local function increment(n: number): number
return n + 1
end
local function double(n: number): number
return n * 2
end
local numbers = {1, 2, 3, 4}
local incremented_numbers = process_list(numbers, increment)
local doubled_numbers = process_list(numbers, double)
local numbers_error = {1, 2, 3, 4, "hello"}
local incremented_numbers = process_list(numbers_error, increment)
stella check process_list.lua