LuaToTypeScript icon indicating copy to clipboard operation
LuaToTypeScript copied to clipboard

Converts Lua code to TypeScript

Lua To TypeScript

npm

Converts Lua to TypeScript code. Uses LDoc type annotations for typing information.

yarn global add lua-to-typescript
# or
npm install -g lua-to-typescript

Then use ltts to use the CLI.

ltts --help

ltts main.lua
# Generates main.ts

ltts a.lua b.lua c.lua ...
# Generates a.ts, b.ts, c.ts, ...

ltts -d library.lua
# Generates library.d.ts

Supports the following tags:

  • @type
  • @tparam
  • @treturn

Can translate classes marked with @classmod to a TypeScript class using the -c option.

Can translate modules marked with @module to a TypeScript module using the -m option.

Can generate declaration files from existing Lua code. Typing information is obtained from lua-types.

Example Input and Output

abc.lua

-- @tparam number a
-- @tparam string b
-- @tparam number c
local function abc(a, b, c)
    print(a, b, c)
end

return abc

Using ltts -d abc.lua, this translates to:

abc.d.ts

declare function abc(a: number, b: string, c: number): void;
export = abc;

See the new features added in the CHANGELOG.