117 lines
5.2 KiB
Plaintext
117 lines
5.2 KiB
Plaintext
=== tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts ===
|
|
// valid uses of arrays of function types
|
|
|
|
var x = [() => 1, () => { }];
|
|
>x : (() => void)[], Symbol(x, Decl(arrayOfFunctionTypes3.ts, 2, 3))
|
|
>[() => 1, () => { }] : (() => void)[]
|
|
>() => 1 : () => number
|
|
>1 : number
|
|
>() => { } : () => void
|
|
|
|
var r2 = x[0]();
|
|
>r2 : void, Symbol(r2, Decl(arrayOfFunctionTypes3.ts, 3, 3))
|
|
>x[0]() : void
|
|
>x[0] : () => void
|
|
>x : (() => void)[], Symbol(x, Decl(arrayOfFunctionTypes3.ts, 2, 3))
|
|
>0 : number
|
|
|
|
class C {
|
|
>C : C, Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16))
|
|
|
|
foo: string;
|
|
>foo : string, Symbol(foo, Decl(arrayOfFunctionTypes3.ts, 5, 9))
|
|
}
|
|
var y = [C, C];
|
|
>y : typeof C[], Symbol(y, Decl(arrayOfFunctionTypes3.ts, 8, 3))
|
|
>[C, C] : typeof C[]
|
|
>C : typeof C, Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16))
|
|
>C : typeof C, Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16))
|
|
|
|
var r3 = new y[0]();
|
|
>r3 : C, Symbol(r3, Decl(arrayOfFunctionTypes3.ts, 9, 3))
|
|
>new y[0]() : C
|
|
>y[0] : typeof C
|
|
>y : typeof C[], Symbol(y, Decl(arrayOfFunctionTypes3.ts, 8, 3))
|
|
>0 : number
|
|
|
|
var a: { (x: number): number; (x: string): string; };
|
|
>a : { (x: number): number; (x: string): string; }, Symbol(a, Decl(arrayOfFunctionTypes3.ts, 11, 3))
|
|
>x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 11, 10))
|
|
>x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 11, 31))
|
|
|
|
var b: { (x: number): number; (x: string): string; };
|
|
>b : { (x: number): number; (x: string): string; }, Symbol(b, Decl(arrayOfFunctionTypes3.ts, 12, 3))
|
|
>x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 12, 10))
|
|
>x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 12, 31))
|
|
|
|
var c: { (x: number): number; (x: any): any; };
|
|
>c : { (x: number): number; (x: any): any; }, Symbol(c, Decl(arrayOfFunctionTypes3.ts, 13, 3))
|
|
>x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 13, 10))
|
|
>x : any, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 13, 31))
|
|
|
|
var z = [a, b, c];
|
|
>z : { (x: number): number; (x: any): any; }[], Symbol(z, Decl(arrayOfFunctionTypes3.ts, 14, 3))
|
|
>[a, b, c] : { (x: number): number; (x: any): any; }[]
|
|
>a : { (x: number): number; (x: string): string; }, Symbol(a, Decl(arrayOfFunctionTypes3.ts, 11, 3))
|
|
>b : { (x: number): number; (x: string): string; }, Symbol(b, Decl(arrayOfFunctionTypes3.ts, 12, 3))
|
|
>c : { (x: number): number; (x: any): any; }, Symbol(c, Decl(arrayOfFunctionTypes3.ts, 13, 3))
|
|
|
|
var r4 = z[0];
|
|
>r4 : { (x: number): number; (x: any): any; }, Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3))
|
|
>z[0] : { (x: number): number; (x: any): any; }
|
|
>z : { (x: number): number; (x: any): any; }[], Symbol(z, Decl(arrayOfFunctionTypes3.ts, 14, 3))
|
|
>0 : number
|
|
|
|
var r5 = r4(''); // any not string
|
|
>r5 : any, Symbol(r5, Decl(arrayOfFunctionTypes3.ts, 16, 3))
|
|
>r4('') : any
|
|
>r4 : { (x: number): number; (x: any): any; }, Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3))
|
|
>'' : string
|
|
|
|
var r5b = r4(1);
|
|
>r5b : number, Symbol(r5b, Decl(arrayOfFunctionTypes3.ts, 17, 3))
|
|
>r4(1) : number
|
|
>r4 : { (x: number): number; (x: any): any; }, Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3))
|
|
>1 : number
|
|
|
|
var a2: { <T>(x: T): number; (x: string): string;};
|
|
>a2 : { <T>(x: T): number; (x: string): string; }, Symbol(a2, Decl(arrayOfFunctionTypes3.ts, 19, 3))
|
|
>T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 19, 11))
|
|
>x : T, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 19, 14))
|
|
>T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 19, 11))
|
|
>x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 19, 30))
|
|
|
|
var b2: { <T>(x: T): number; (x: string): string; };
|
|
>b2 : { <T>(x: T): number; (x: string): string; }, Symbol(b2, Decl(arrayOfFunctionTypes3.ts, 20, 3))
|
|
>T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 20, 11))
|
|
>x : T, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 20, 14))
|
|
>T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 20, 11))
|
|
>x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 20, 30))
|
|
|
|
var c2: { (x: number): number; <T>(x: T): any; };
|
|
>c2 : { (x: number): number; <T>(x: T): any; }, Symbol(c2, Decl(arrayOfFunctionTypes3.ts, 21, 3))
|
|
>x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 21, 11))
|
|
>T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 21, 32))
|
|
>x : T, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 21, 35))
|
|
>T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 21, 32))
|
|
|
|
var z2 = [a2, b2, c2];
|
|
>z2 : { (x: number): number; <T>(x: T): any; }[], Symbol(z2, Decl(arrayOfFunctionTypes3.ts, 23, 3))
|
|
>[a2, b2, c2] : { (x: number): number; <T>(x: T): any; }[]
|
|
>a2 : { <T>(x: T): number; (x: string): string; }, Symbol(a2, Decl(arrayOfFunctionTypes3.ts, 19, 3))
|
|
>b2 : { <T>(x: T): number; (x: string): string; }, Symbol(b2, Decl(arrayOfFunctionTypes3.ts, 20, 3))
|
|
>c2 : { (x: number): number; <T>(x: T): any; }, Symbol(c2, Decl(arrayOfFunctionTypes3.ts, 21, 3))
|
|
|
|
var r6 = z2[0];
|
|
>r6 : { (x: number): number; <T>(x: T): any; }, Symbol(r6, Decl(arrayOfFunctionTypes3.ts, 24, 3))
|
|
>z2[0] : { (x: number): number; <T>(x: T): any; }
|
|
>z2 : { (x: number): number; <T>(x: T): any; }[], Symbol(z2, Decl(arrayOfFunctionTypes3.ts, 23, 3))
|
|
>0 : number
|
|
|
|
var r7 = r6(''); // any not string
|
|
>r7 : any, Symbol(r7, Decl(arrayOfFunctionTypes3.ts, 25, 3))
|
|
>r6('') : any
|
|
>r6 : { (x: number): number; <T>(x: T): any; }, Symbol(r6, Decl(arrayOfFunctionTypes3.ts, 24, 3))
|
|
>'' : string
|
|
|