22 lines
311 B
JavaScript
22 lines
311 B
JavaScript
// @noflow
|
|
|
|
// annotations for disjoint unions
|
|
|
|
type T =
|
|
| { type: "FOO", x: number }
|
|
| { type: "BAR", x: string }
|
|
|
|
({ type: (bar(): "BAR"), x: str() }: T);
|
|
|
|
({ type: bar(), x: str() }: T);
|
|
|
|
({ type: bar(), x: (str(): string) }: T);
|
|
|
|
function bar() {
|
|
return "BAR";
|
|
}
|
|
|
|
function str() {
|
|
return "hello";
|
|
}
|