diff --git a/tests/cases/conformance/types/union/discriminatedUnionTypes2.ts b/tests/cases/conformance/types/union/discriminatedUnionTypes2.ts index 789bc263c7..a11e144778 100644 --- a/tests/cases/conformance/types/union/discriminatedUnionTypes2.ts +++ b/tests/cases/conformance/types/union/discriminatedUnionTypes2.ts @@ -72,3 +72,25 @@ function f20(carrier: DataCarrier) { const data: null = carrier.data } } + +// Repro from #28935 + +type Foo = { tag: true, x: number } | { tag: false, y: number } | { [x: string]: string }; + +function f30(foo: Foo) { + if (foo.tag) { + foo; + } + else { + foo; + } +} + +function f31(foo: Foo) { + if (foo.tag === true) { + foo; + } + else { + foo; + } +}