TypeScript type generator for Defold
type-gen is a TypeScript declarations generator for the Defold game engine.
- types are parsed generated from the offical documentation
- types will avoid
any
if they can - vmath.* types can all be used with number operators through Intersection Types
- you will need to decorate with an aditional cast upon assignment, but a fair tradeoff vs. vector math function helpers
function on_update(this:{pos: vmath.vector3, dir: vmath.vector3}, dt: number) { const speed = 331; this.pos = this.pos + this.dir * speed * dt as vmath.vector3; }
- you will need to decorate with an aditional cast upon assignment, but a fair tradeoff vs. vector math function helpers
- generated typdoc commnets from lua documentation
- fully generated with no need to manually intervine
type-gen was made to generate types for @ts-defold/types and is included as a dev dependency. If you are simply wanting typescipt types for your Defold project @ts-defold/types is your best bet.
npm install -D @ts-defold/types
If you would like to generate your own types, hack on this project, or contribute in any way, i would suggest you try:
git clone https://github.com/ts-defold/type-gen.git
cd type-gen
npm install
npm run build
Alternatively, if you would like to just generate your types without the dependency then simply:
npx @ts-defold/type-gen
#or
npx @ts-defold/type-gen -- defold.d.ts --channel stable --api latest
@ts-defold/type-gen can optionally take in arguments:
- [defold.d.ts] path to generated output file
- --channel [stable | beta | alpha]
- --api [latest | 1.2.xxx]
If being used in a project locked to a specific release channel or version of defold you may add configuration settings in your package.json
instead:
"ts-defold": {
"channel": "stable",
"output": "index.d.ts"
},
@dasannikov and DefoldTypescript for a starting point and inspiration TypeScriptToLua for the awesome community and tools @hazzard993, @ark120202, @Perryvw and all the fine folks over on the tstl discord server.
TypeScript ❤️ Defold