infer-types
Returns the exported inferred types from TypeScript.
This is a tool to test that the types you expect TypeScript to infer are correct - this is meant to be used in snapshot or plain tests.
Install
npm install --save-dev infer-types
How does it work?
It works by compiling the input file with TypeScript and look for every @export <name>
declaration:
/** @export some-name */;
The function returns an object, made from all the <name>
s as keys, and types - as strings, as the object values, so in the previous example, the object would look like:
Usage
Let's say you have the following file:
// ./test-file.ts // apply is a generic function, and we'd like to know that a user that will use// it, will get type safety and code completion, so no `any` will pop out.//// Let's make some test cases: apply10, /** @export number => number */ x + 1;apply10, /** @export number => string */ Stringx;apply"hello", /** @export string => number */ x.length; ;; applyuser, /** @export User => number */ x.name;
And in our testing framework of choice:
; test"infers correctly",;