Open
Description
In cases where a sum type is transcribed as a series of interfaces and a union type:
export type U = A | B | C;
export interface A {
tag: "A";
contents: ...
}
export interface B {
tag: "B";
contents: ...
}
export interface C {
tag: "C";
contents: ...
}
Type predicates (https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates) would be useful:
function isA(u: A | B | C): U is A {
return (u as A).tag == "A";
}
Metadata
Metadata
Assignees
Labels
No labels