@@ -341,51 +341,13 @@ interface CallableFunction extends Function {
341341 */
342342 bind < T > ( this : T , thisArg : ThisParameterType < T > ) : OmitThisParameter < T > ;
343343
344- /**
345- * For a given function, creates a bound function that has the same body as the original function.
346- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
347- * @param thisArg The object to be used as the this object.
348- * @param arg0 The first argument to bind to the parameters of the function.
349- */
350- bind < T , A0 , A extends any [ ] , R > ( this : ( this : T , arg0 : A0 , ...args : A ) => R , thisArg : T , arg0 : A0 ) : ( ...args : A ) => R ;
351-
352- /**
353- * For a given function, creates a bound function that has the same body as the original function.
354- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
355- * @param thisArg The object to be used as the this object.
356- * @param arg0 The first argument to bind to the parameters of the function.
357- * @param arg1 The second argument to bind to the parameters of the function.
358- */
359- bind < T , A0 , A1 , A extends any [ ] , R > ( this : ( this : T , arg0 : A0 , arg1 : A1 , ...args : A ) => R , thisArg : T , arg0 : A0 , arg1 : A1 ) : ( ...args : A ) => R ;
360-
361- /**
362- * For a given function, creates a bound function that has the same body as the original function.
363- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
364- * @param thisArg The object to be used as the this object.
365- * @param arg0 The first argument to bind to the parameters of the function.
366- * @param arg1 The second argument to bind to the parameters of the function.
367- * @param arg2 The third argument to bind to the parameters of the function.
368- */
369- bind < T , A0 , A1 , A2 , A extends any [ ] , R > ( this : ( this : T , arg0 : A0 , arg1 : A1 , arg2 : A2 , ...args : A ) => R , thisArg : T , arg0 : A0 , arg1 : A1 , arg2 : A2 ) : ( ...args : A ) => R ;
370-
371- /**
372- * For a given function, creates a bound function that has the same body as the original function.
373- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
374- * @param thisArg The object to be used as the this object.
375- * @param arg0 The first argument to bind to the parameters of the function.
376- * @param arg1 The second argument to bind to the parameters of the function.
377- * @param arg2 The third argument to bind to the parameters of the function.
378- * @param arg3 The fourth to bind to the parameters of the function.
379- */
380- bind < T , A0 , A1 , A2 , A3 , A extends any [ ] , R > ( this : ( this : T , arg0 : A0 , arg1 : A1 , arg2 : A2 , arg3 : A3 , ...args : A ) => R , thisArg : T , arg0 : A0 , arg1 : A1 , arg2 : A2 , arg3 : A3 ) : ( ...args : A ) => R ;
381-
382344 /**
383345 * For a given function, creates a bound function that has the same body as the original function.
384346 * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
385347 * @param thisArg The object to be used as the this object.
386348 * @param args Arguments to bind to the parameters of the function.
387349 */
388- bind < T , AX , R > ( this : ( this : T , ...args : AX [ ] ) => R , thisArg : T , ...args : AX [ ] ) : ( ...args : AX [ ] ) => R ;
350+ bind < T , A extends any [ ] , B extends any [ ] , R > ( this : ( this : T , ...args : [ ... A , ... B ] ) => R , thisArg : T , ...args : A ) : ( ...args : B ) => R ;
389351}
390352
391353interface NewableFunction extends Function {
@@ -415,51 +377,13 @@ interface NewableFunction extends Function {
415377 */
416378 bind < T > ( this : T , thisArg : any ) : T ;
417379
418- /**
419- * For a given function, creates a bound function that has the same body as the original function.
420- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
421- * @param thisArg The object to be used as the this object.
422- * @param arg0 The first argument to bind to the parameters of the function.
423- */
424- bind < A0 , A extends any [ ] , R > ( this : new ( arg0 : A0 , ...args : A ) => R , thisArg : any , arg0 : A0 ) : new ( ...args : A ) => R ;
425-
426- /**
427- * For a given function, creates a bound function that has the same body as the original function.
428- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
429- * @param thisArg The object to be used as the this object.
430- * @param arg0 The first argument to bind to the parameters of the function.
431- * @param arg1 The second argument to bind to the parameters of the function.
432- */
433- bind < A0 , A1 , A extends any [ ] , R > ( this : new ( arg0 : A0 , arg1 : A1 , ...args : A ) => R , thisArg : any , arg0 : A0 , arg1 : A1 ) : new ( ...args : A ) => R ;
434-
435- /**
436- * For a given function, creates a bound function that has the same body as the original function.
437- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
438- * @param thisArg The object to be used as the this object.
439- * @param arg0 The first argument to bind to the parameters of the function.
440- * @param arg1 The second argument to bind to the parameters of the function.
441- * @param arg2 The third argument to bind to the parameters of the function.
442- */
443- bind < A0 , A1 , A2 , A extends any [ ] , R > ( this : new ( arg0 : A0 , arg1 : A1 , arg2 : A2 , ...args : A ) => R , thisArg : any , arg0 : A0 , arg1 : A1 , arg2 : A2 ) : new ( ...args : A ) => R ;
444-
445- /**
446- * For a given function, creates a bound function that has the same body as the original function.
447- * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
448- * @param thisArg The object to be used as the this object.
449- * @param arg0 The first argument to bind to the parameters of the function.
450- * @param arg1 The second argument to bind to the parameters of the function.
451- * @param arg2 The third argument to bind to the parameters of the function.
452- * @param arg3 The fourth to bind to the parameters of the function.
453- */
454- bind < A0 , A1 , A2 , A3 , A extends any [ ] , R > ( this : new ( arg0 : A0 , arg1 : A1 , arg2 : A2 , arg3 : A3 , ...args : A ) => R , thisArg : any , arg0 : A0 , arg1 : A1 , arg2 : A2 , arg3 : A3 ) : new ( ...args : A ) => R ;
455-
456380 /**
457381 * For a given function, creates a bound function that has the same body as the original function.
458382 * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
459383 * @param thisArg The object to be used as the this object.
460384 * @param args Arguments to bind to the parameters of the function.
461385 */
462- bind < AX , R > ( this : new ( ...args : AX [ ] ) => R , thisArg : any , ...args : AX [ ] ) : new ( ...args : AX [ ] ) => R ;
386+ bind < A extends any [ ] , B extends any [ ] , R > ( this : new ( ...args : [ ... A , ... B ] ) => R , thisArg : any , ...args : A ) : new ( ...args : B ) => R ;
463387}
464388
465389interface IArguments {
0 commit comments