The TypeScriptLUA repo contains the complete source code implementation for TypeScript compiler for LUA bytecode
The TypeScriptLua repo contains the complete source code implementation for TypeScript compiler for Lua bytecode.
Want to chat with other members of the TypeScript for Lua community?
Some of the best ways to contribute are to try things out, file bugs, and join in design conversations.
TypeScriptLua is licensed under the MIT license.
Prerequisite: nodejs, Lua 5.3, VSCode
npm install
npm run build
create file test.ts
declare var print: any;
class Person {
protected name: string;
constructor(name: string) { this.name = name; }
}
class Employee extends Person {
private department: string;
constructor(name: string, department: string) {
super(name);
this.department = department;
}
public get ElevatorPitch() {
return `Hello, my name is ${this.name} and I work in ${this.department}.`;
}
}
let howard = new Employee("Howard", "Sales");
print(howard.ElevatorPitch);
node __out/main.js test.ts
Now you have test.lua
lua test.lua
Result:
Hello, my name is Howard and I work in Sales.
Enjoy it.
cd experiments\jslib
node ../../__out/main.js -singleModule
Copy JS.lua into your folder where you run the compiled app.
Compile test.ts
create file test.ts
class Person {
protected name: string;
constructor(name: string) { this.name = name; }
}
class Employee extends Person {
private department: string;
constructor(name: string, department: string) {
super(name);
this.department = department;
}
public get ElevatorPitch() {
return `Hello, my name is ${this.name} and I work in ${this.department}.`;
}
}
let howard = new Employee("Howard", "Sales");
console.log(howard.ElevatorPitch);
node __out/main.js test.ts
lua -e "require('./JS')" test.lua
Result:
Hello, my name is Howard and I work in Sales.
Enjoy it