This is awesome! I dig this when using Rust and am pumped to try and sneak this in at work where we have a large TS codebase.
There's a lot of more established and battle tested libraries with the same functionality - I've recently been using Purify and finding it to be absolutely fine :)
their version of the same feature is here: https://gigobyte.github.io/purify/adts/Maybe