=== tests/cases/conformance/types/intersection/intersectionTypeMembers.ts === // An intersection type has those members that are present in any of its constituent types, // with types that are intersections of the respective members in the constituent types interface A { a: string } >A : Symbol(A, Decl(intersectionTypeMembers.ts, 0, 0)) >a : Symbol(a, Decl(intersectionTypeMembers.ts, 3, 13)) interface B { b: string } >B : Symbol(B, Decl(intersectionTypeMembers.ts, 3, 25)) >b : Symbol(b, Decl(intersectionTypeMembers.ts, 4, 13)) interface C { c: string } >C : Symbol(C, Decl(intersectionTypeMembers.ts, 4, 25)) >c : Symbol(c, Decl(intersectionTypeMembers.ts, 5, 13)) var abc: A & B & C; >abc : Symbol(abc, Decl(intersectionTypeMembers.ts, 7, 3)) >A : Symbol(A, Decl(intersectionTypeMembers.ts, 0, 0)) >B : Symbol(B, Decl(intersectionTypeMembers.ts, 3, 25)) >C : Symbol(C, Decl(intersectionTypeMembers.ts, 4, 25)) abc.a = "hello"; >abc.a : Symbol(A.a, Decl(intersectionTypeMembers.ts, 3, 13)) >abc : Symbol(abc, Decl(intersectionTypeMembers.ts, 7, 3)) >a : Symbol(A.a, Decl(intersectionTypeMembers.ts, 3, 13)) abc.b = "hello"; >abc.b : Symbol(B.b, Decl(intersectionTypeMembers.ts, 4, 13)) >abc : Symbol(abc, Decl(intersectionTypeMembers.ts, 7, 3)) >b : Symbol(B.b, Decl(intersectionTypeMembers.ts, 4, 13)) abc.c = "hello"; >abc.c : Symbol(C.c, Decl(intersectionTypeMembers.ts, 5, 13)) >abc : Symbol(abc, Decl(intersectionTypeMembers.ts, 7, 3)) >c : Symbol(C.c, Decl(intersectionTypeMembers.ts, 5, 13)) interface X { x: A } >X : Symbol(X, Decl(intersectionTypeMembers.ts, 10, 16)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 12, 13)) >A : Symbol(A, Decl(intersectionTypeMembers.ts, 0, 0)) interface Y { x: B } >Y : Symbol(Y, Decl(intersectionTypeMembers.ts, 12, 20)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 13, 13)) >B : Symbol(B, Decl(intersectionTypeMembers.ts, 3, 25)) interface Z { x: C } >Z : Symbol(Z, Decl(intersectionTypeMembers.ts, 13, 20)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 14, 13)) >C : Symbol(C, Decl(intersectionTypeMembers.ts, 4, 25)) var xyz: X & Y & Z; >xyz : Symbol(xyz, Decl(intersectionTypeMembers.ts, 16, 3)) >X : Symbol(X, Decl(intersectionTypeMembers.ts, 10, 16)) >Y : Symbol(Y, Decl(intersectionTypeMembers.ts, 12, 20)) >Z : Symbol(Z, Decl(intersectionTypeMembers.ts, 13, 20)) xyz.x.a = "hello"; >xyz.x.a : Symbol(A.a, Decl(intersectionTypeMembers.ts, 3, 13)) >xyz.x : Symbol(x, Decl(intersectionTypeMembers.ts, 12, 13), Decl(intersectionTypeMembers.ts, 13, 13), Decl(intersectionTypeMembers.ts, 14, 13)) >xyz : Symbol(xyz, Decl(intersectionTypeMembers.ts, 16, 3)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 12, 13), Decl(intersectionTypeMembers.ts, 13, 13), Decl(intersectionTypeMembers.ts, 14, 13)) >a : Symbol(A.a, Decl(intersectionTypeMembers.ts, 3, 13)) xyz.x.b = "hello"; >xyz.x.b : Symbol(B.b, Decl(intersectionTypeMembers.ts, 4, 13)) >xyz.x : Symbol(x, Decl(intersectionTypeMembers.ts, 12, 13), Decl(intersectionTypeMembers.ts, 13, 13), Decl(intersectionTypeMembers.ts, 14, 13)) >xyz : Symbol(xyz, Decl(intersectionTypeMembers.ts, 16, 3)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 12, 13), Decl(intersectionTypeMembers.ts, 13, 13), Decl(intersectionTypeMembers.ts, 14, 13)) >b : Symbol(B.b, Decl(intersectionTypeMembers.ts, 4, 13)) xyz.x.c = "hello"; >xyz.x.c : Symbol(C.c, Decl(intersectionTypeMembers.ts, 5, 13)) >xyz.x : Symbol(x, Decl(intersectionTypeMembers.ts, 12, 13), Decl(intersectionTypeMembers.ts, 13, 13), Decl(intersectionTypeMembers.ts, 14, 13)) >xyz : Symbol(xyz, Decl(intersectionTypeMembers.ts, 16, 3)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 12, 13), Decl(intersectionTypeMembers.ts, 13, 13), Decl(intersectionTypeMembers.ts, 14, 13)) >c : Symbol(C.c, Decl(intersectionTypeMembers.ts, 5, 13)) type F1 = (x: string) => string; >F1 : Symbol(F1, Decl(intersectionTypeMembers.ts, 19, 18)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 21, 11)) type F2 = (x: number) => number; >F2 : Symbol(F2, Decl(intersectionTypeMembers.ts, 21, 32)) >x : Symbol(x, Decl(intersectionTypeMembers.ts, 22, 11)) var f: F1 & F2; >f : Symbol(f, Decl(intersectionTypeMembers.ts, 24, 3)) >F1 : Symbol(F1, Decl(intersectionTypeMembers.ts, 19, 18)) >F2 : Symbol(F2, Decl(intersectionTypeMembers.ts, 21, 32)) var s = f("hello"); >s : Symbol(s, Decl(intersectionTypeMembers.ts, 25, 3)) >f : Symbol(f, Decl(intersectionTypeMembers.ts, 24, 3)) var n = f(42); >n : Symbol(n, Decl(intersectionTypeMembers.ts, 26, 3)) >f : Symbol(f, Decl(intersectionTypeMembers.ts, 24, 3))