“as unknown as MyType” usually works almost as well and avoids throwing you out into the cold untyped darkness.
I also try not to let any escape function boundaries.
Recast it to something better when returning something.
Re:Bad TypeScript Habits
by eyelidlessness on Tuesday February 02, 2021 @11:25PM
(#26010602)
> “as unknown as MyType” usually works almost as well and avoids throwing you out into the cold untyped darkness.
No it doesn’t. You’re casting to `any` and hiding that fact. Both top types can be anything at all, `unknown` is only safer if you narrow it to something else by testing it. If you cast it to something else you’re just treating `unknown` as `any`.
On the other hand, most of the time I'm willing to put in a little effort to express the desired types, since it dramatically improves the intellisense suggestions, making code edits / refactors much less of a mental burden.
But yeah, sometimes you hit a wall and need to do something unsafe.
https://blog.isquaredsoftware.com/2019/11/blogged-answers-le...