TS is a bit more powerful than it appears here, because string literal values are recognized at the type level, so can be checked by the compiler when distinguishing cases.
See for example: "Discriminated Unions" at https://www.typescriptlang.org/docs/handbook/advanced-types.....