TypeScript/tests/baselines/reference/destructuringFromUnionSpread.symbols
Andrew Branch bd7d0f26b2
Don’t allow an object literal with a spread as a fallback for destructuring a property not present in all constituents (#43783)
* Add test

* Don’t allow an object literal with a spread as a fallback for destructuring a property not present in all constituents
2021-04-23 14:44:57 -07:00

19 lines
741 B
Plaintext

=== tests/cases/compiler/destructuringFromUnionSpread.ts ===
interface A { a: string }
>A : Symbol(A, Decl(destructuringFromUnionSpread.ts, 0, 0))
>a : Symbol(A.a, Decl(destructuringFromUnionSpread.ts, 0, 13))
interface B { b: number }
>B : Symbol(B, Decl(destructuringFromUnionSpread.ts, 0, 25))
>b : Symbol(B.b, Decl(destructuringFromUnionSpread.ts, 1, 13))
declare const x: A | B;
>x : Symbol(x, Decl(destructuringFromUnionSpread.ts, 3, 13))
>A : Symbol(A, Decl(destructuringFromUnionSpread.ts, 0, 0))
>B : Symbol(B, Decl(destructuringFromUnionSpread.ts, 0, 25))
const { a } = { ...x } // error
>a : Symbol(a, Decl(destructuringFromUnionSpread.ts, 4, 7))
>x : Symbol(x, Decl(destructuringFromUnionSpread.ts, 3, 13))