creates a custom assertion function with standard TypeError. Currently this requires explicity type annotation, thus making it hard to use: https://github.com/microsoft/TypeScript/issues/41047
💀 deprecated. It does not work in all cases.
It passes for function that can be called with new.
If the subject is an arrow function, it can still return true after compilation.
💥 immediate 🚦 assertion
Assert the subject satisfies the specified type T