Think of it like Haskell's cast from the Typeable class.
Yes, if somebody sends random stuff, you'll have to handle a failure, or do the equivalent of returning undefined, what is way easier than properly handling it in TS. What you do from there is up to you.
Nowadays there's always a good chance that the largest cost is rent.