//// [infinitelyExpandingTypes5.ts] interface Query { foo(x: T): Query; } interface Enumerator { (action: (item: T, index: number) => boolean): boolean; } function from(array: T[]): Query; function from(enumerator: Enumerator): Query; function from(arg: any): any { return undefined; } //// [infinitelyExpandingTypes5.js] function from(arg) { return undefined; }