TypeScript: make unions discriminated
typescripttyping
A kind field makes narrowing easy.
type Res = { kind: 'ok'; value: string } | { kind: 'err'; message: string };
function f(r: Res) {
if (r.kind === 'ok') return r.value;
return r.message;
}