==== tests/cases/compiler/typeArgumentsShouldDisallowNonGenericOverloads.ts (2 errors) ==== function foo(a: string): string; function foo(a: T): number; function foo(a: any): any { return "hi"; } var x: number = foo("hi"); // return type should be 'number' var y: string = foo("hi"); // return type should be 'string' var w: string = foo("hi"); // should error ~ !!! Type 'number' is not assignable to type 'string'. var z: number = foo("hi"); // should error ~ !!! Type 'string' is not assignable to type 'number'.