Provide types for function parameters and arguments and the spread checker will tell you if the call would succeed.
This page also generates TypeScript code that will help you understand how the spread checker has understood your types, and a link to the playground so you can see how TypeScript handles the same situation.
This is a simple demo with limited power in parsing and typechecking.
It's designed to detect whether spreads in a function call are valid in basic scenarios involving primitive types.
Stick to `number` and `string`, and optionals, tuples, arrays, spread/rests, and unions of `number` and `string`.
The type parser does not handle names, so optional `?` goes after the type.
Optional does not add `undefined` to the type as far as our spread checking algorithm goes, so add `undefined` by hand if you need to.
The type parser does not handle names, literals, objects, generics, inference. It's a demo!