I don't know about what other strictness you're referring to but exhaustive enum matching is common check in most TS stacks via eslint. Yea, it's not builtin, just saying there's a solution and it's super common.
Every TS project I've worked on has an assertNever(val) thing specifically to check for this kinda stuff
I find the never type in TS actually being a proper bottom type + having control-flow based types vastly superior to what rust offers.