Test nested object literal assignability to intersection type
This commit is contained in:
parent
2658cf62eb
commit
45f70d5b1e
4 changed files with 96 additions and 0 deletions
|
@ -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'
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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'
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue