Remix.run Logo
socalgal2 3 hours ago

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.

tcfhgj 28 minutes ago | parent | next [-]

last time I researched enums in TS for a project, they were a mess such that it was better not to use enums in the first place

cyberax 2 hours ago | parent | prev [-]

You can actually have it built-in (via default case in 'switch' statements having a 'never()' statement). But it's less powerful than Rust's.

nikeee 2 hours ago | parent [-]

Or you don't use the defualt case and rely on definite assignment analysis or checks for returns in every code path.

I find the never type in TS actually being a proper bottom type + having control-flow based types vastly superior to what rust offers.