//// [duplicateOverloadInTypeAugmentation1.ts] interface Array { reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } var a: Array; var r5 = a.reduce((x, y) => x + y); //// [duplicateOverloadInTypeAugmentation1.js] var a; var r5 = a.reduce(function (x, y) { return x + y; });