Re:The Great CoffeeScript to Typescript Migration of 2017
by ygra on Saturday May 16, 2020 @04:29AM
(#23201517)
You can sometimes use overloads to make it better:
function transform(a: number): number
function transform(a: string): false
function transform(""): ""
Depending on how predictable the output is from the types, of course. But for many things it works better than just using union types everywhere.
Static typing doesn't just tell you what's going on, but it also helps you keep your implementation honest with your intent. It's also why it's a good habit to annotate top-level functions instead of relying on their inference.