diff --git a/tests/baselines/reference/intersectionTypeMembers.js b/tests/baselines/reference/intersectionTypeMembers.js index 9c1cd75d601..3dfe9bfe8b8 100644 --- a/tests/baselines/reference/intersectionTypeMembers.js +++ b/tests/baselines/reference/intersectionTypeMembers.js @@ -26,6 +26,19 @@ type F2 = (x: number) => number; var f: F1 & F2; var s = f("hello"); var n = f(42); + +interface D { + nested: {d: string;}; +} +interface E { + nested: { e: string; }; +} +const de: D & E = { + nested: { + d: 'yes', + e: 'no' + } +} //// [intersectionTypeMembers.js] @@ -42,3 +55,9 @@ xyz.x.c = "hello"; var f; var s = f("hello"); var n = f(42); +var de = { + nested: { + d: 'yes', + e: 'no' + } +}; diff --git a/tests/baselines/reference/intersectionTypeMembers.symbols b/tests/baselines/reference/intersectionTypeMembers.symbols index 9ec66ef64b9..3d81df03230 100644 --- a/tests/baselines/reference/intersectionTypeMembers.symbols +++ b/tests/baselines/reference/intersectionTypeMembers.symbols @@ -98,3 +98,33 @@ var n = f(42); >n : Symbol(n, Decl(intersectionTypeMembers.ts, 26, 3)) >f : Symbol(f, Decl(intersectionTypeMembers.ts, 24, 3)) +interface D { +>D : Symbol(D, Decl(intersectionTypeMembers.ts, 26, 14)) + + nested: {d: string;}; +>nested : Symbol(D.nested, Decl(intersectionTypeMembers.ts, 28, 13)) +>d : Symbol(d, Decl(intersectionTypeMembers.ts, 29, 13)) +} +interface E { +>E : Symbol(E, Decl(intersectionTypeMembers.ts, 30, 1)) + + nested: { e: string; }; +>nested : Symbol(E.nested, Decl(intersectionTypeMembers.ts, 31, 13)) +>e : Symbol(e, Decl(intersectionTypeMembers.ts, 32, 13)) +} +const de: D & E = { +>de : Symbol(de, Decl(intersectionTypeMembers.ts, 34, 5)) +>D : Symbol(D, Decl(intersectionTypeMembers.ts, 26, 14)) +>E : Symbol(E, Decl(intersectionTypeMembers.ts, 30, 1)) + + nested: { +>nested : Symbol(nested, Decl(intersectionTypeMembers.ts, 34, 19)) + + d: 'yes', +>d : Symbol(d, Decl(intersectionTypeMembers.ts, 35, 13)) + + e: 'no' +>e : Symbol(e, Decl(intersectionTypeMembers.ts, 36, 17)) + } +} + diff --git a/tests/baselines/reference/intersectionTypeMembers.types b/tests/baselines/reference/intersectionTypeMembers.types index a97a54c7a81..0d1b82a9b5b 100644 --- a/tests/baselines/reference/intersectionTypeMembers.types +++ b/tests/baselines/reference/intersectionTypeMembers.types @@ -114,3 +114,37 @@ var n = f(42); >f : ((x: string) => string) & ((x: number) => number) >42 : number +interface D { +>D : D + + nested: {d: string;}; +>nested : { d: string; } +>d : string +} +interface E { +>E : E + + nested: { e: string; }; +>nested : { e: string; } +>e : string +} +const de: D & E = { +>de : D & E +>D : D +>E : E +>{ nested: { d: 'yes', e: 'no' }} : { nested: { d: string; e: string; }; } + + nested: { +>nested : { d: string; e: string; } +>{ d: 'yes', e: 'no' } : { d: string; e: string; } + + d: 'yes', +>d : string +>'yes' : string + + e: 'no' +>e : string +>'no' : string + } +} + diff --git a/tests/cases/conformance/types/intersection/intersectionTypeMembers.ts b/tests/cases/conformance/types/intersection/intersectionTypeMembers.ts index a8c92647f47..5a81efbb32a 100644 --- a/tests/cases/conformance/types/intersection/intersectionTypeMembers.ts +++ b/tests/cases/conformance/types/intersection/intersectionTypeMembers.ts @@ -25,3 +25,16 @@ type F2 = (x: number) => number; var f: F1 & F2; var s = f("hello"); var n = f(42); + +interface D { + nested: {d: string;}; +} +interface E { + nested: { e: string; }; +} +const de: D & E = { + nested: { + d: 'yes', + e: 'no' + } +}