You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Then invoke the binary with the code to trigger the function invocations:
npx derive-type node main.js
This will generate the TypeScript definition, insert the JSDoc snippet
and remove the call to derive-type:
// main.js/** @type { import("/var/folders/ls/xxxx/T/derive-type-gen/KC9Vc2Vycy9kMDY1MDIzL3Byb2plY3RzL0Rldk9uRHV0eS9kZXJpdmUtdHlwZS10ZXN0L3Rlc3QuanM6NDoyNSk=").GEN } Generated */functionmyFunction(x,y){// now you know that `x` and `y` are of type `number`console.log(x,y)}myFunction(1,2)
Notes
The function invocations don't need to be in the same file, usually they are based on tests:
npx derive-type npm test
The generated types are based on the merged input of all function invocations.
The function definition must begin in a new line.
You can also install derive-type globally, then you must use the path of your global package, e.g. require("/usr/local/lib/node_modules/derive-type/").
The generated types are located in os.tmpdir() (changeable via DERIVE_TYPE_FOLDER).
The generated types are deleted after 5 days (changeable via DERIVE_TYPE_MAX_AGE_DAYS).
Debugging output can be enabled by setting DERIVE_TYPE_DEBUG to true.