tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts(17,13): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts(26,10): error TS2349: Cannot invoke an expression whose type lacks a call signature.


==== tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts (2 errors) ====
    // valid uses of arrays of function types
    
    var x = [() => 1, () => { }];
    var r2 = x[0]();
    
    class C {
        foo: string;
    }
    var y = [C, C];
    var r3 = new y[0]();
    
    var a: { (x: number): number; (x: string): string; };
    var b: { (x: number): number; (x: string): string; };
    var c: { (x: number): number; (x: any): any; };
    var z = [a, b, c];
    var r4 = z[0];
    var r5 = r4(''); // any not string
                ~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
    var r5b = r4(1);
    
    var a2: { <T>(x: T): number; (x: string): string;};
    var b2: { <T>(x: T): number; (x: string): string; };
    var c2: { (x: number): number; <T>(x: T): any; };
    
    var z2 = [a2, b2, c2];
    var r6 = z2[0];
    var r7 = r6(''); // any not string
             ~~~~~~
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature.