diff --git a/typescript/core/base.ts b/typescript/core/base.ts index 32c83c3a7..b6d7e795d 100644 --- a/typescript/core/base.ts +++ b/typescript/core/base.ts @@ -38,13 +38,13 @@ export interface _base { size: (collection: any[]|object|string) => number; - each: (collection: any[]|object|string, callback?: ((index: number, value: T) => void)|object|string, thisArg?: any) => any; + each: (collection: T[]|object|string, callback?: ((index: number, value: T) => void)|object|string, thisArg?: any) => any; - map: (collection: any[]|object|string, callback?: ((index: number, value: T) => any)|object|string, thisArg?: any) => any[]; + map: (collection: T[]|object|string, callback?: ((index: number, value: T) => U)|object|string, thisArg?: any) => U[]; - reduce: (collection: any[]|object|string, callback?: ((total: any, currentValue: T, currentIndex: number) => any)|object|string, thisArg?: any) => any; + reduce: (collection: T[]|object|string, callback?: ((total: U extends T ? U : T, currentValue: T, currentIndex: number) => U extends T ? U : T)|object|string, initialValue?: U|T) => U extends T ? U : T; - reduceRight: (collection: any[]|object|string, callback?: ((total: any, currentValue: T, currentIndex: number) => any)|object|string, thisArg?: any) => any; + reduceRight: (collection: T[]|object|string, callback?: ((total: U extends T ? U : T, currentValue: T, currentIndex: number) => U extends T ? U : T)|object|string, initialValue?: U|T) => U extends T ? U : T; find: (collection: T[]|object|string, callback?: ((index: number, value: T) => boolean)|object|string, thisArg?: any) => any;