TypeScript/tests/baselines/reference/arrayOfFunctionTypes3.types
2015-04-13 14:29:37 -07:00

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