Register and share your invite link to earn from video plays and referrals.

Vanilagy
@vanilagy
It's pronounced vanilla-gee | Author of Mediabunny and Marble Blast Web. Love working on technically challenging projects that bring the best out of the web.
Joined July 2014
119 Following    3.9K Followers
PLEASE stop modeling "errors as values" in TypeScript after the "Result" enum from Rust. It is unnecessarily verbose and you're paying for an object instantiation for every value you return, everywhere, even if the error path never happens in the entire lifetime of your application. Instead, use unions: Simply return T | Error, and TypeScript automatically narrows the type for you once you check (x instanceof Error). instanceof checks are trivial, and if you never return errors at runtime, V8's JIT will optimize out the error case entirely and performance will be identical to if you didn't handle errors at all. You'll only pay for the deopt when you do hit the error case, but that's fine.
Show more