type State = {
sharedProperty: any;
} & (
| { discriminant: "FOO"; foo: any }
| { discriminant: "BAR"; bar: any }
| { discriminant: "BAZ"; baz: any }
);