Merge pull request #5202 from chrootsu/lodash-before

lodash: added _.before() method
This commit is contained in:
Masahiro Wakame
2015-08-04 21:55:45 +09:00
2 changed files with 38 additions and 0 deletions
+18
View File
@@ -769,6 +769,24 @@ var testBackflowAddFn = (n: number, m: number) => n + m;
result = <number>_.backflow<(n: number, m: number) => number>(testBackflowSquareFn, testBackflowAddFn)(1, 2);
result = <number>_(testBackflowSquareFn).backflow<(n: number, m: number) => number>(testBackflowAddFn).value()(1, 2);
// _.before
var testBeforeFn = ((n: number) => () => ++n)(0);
var testBeforeResultFn = <() => number>_.before<() => number>(3, testBeforeFn);
result = <number>testBeforeResultFn();
// → 1
result = <number>testBeforeResultFn();
// → 2
result = <number>testBeforeResultFn();
// → 2
var testBeforeFn = ((n: number) => () => ++n)(0);
var testBeforeResultFn = <() => number>_(3).before<() => number>(testBeforeFn);
result = <number>testBeforeResultFn();
// → 1
result = <number>testBeforeResultFn();
// → 2
result = <number>testBeforeResultFn();
// → 2
var funcBind = function(greeting: string, punctuation: string) { return greeting + ' ' + this.user + punctuation; };
var funcBound1: (punctuation: string) => any = _.bind(funcBind, { 'name': 'moe' }, 'hi');
funcBound1('!');
+20
View File
@@ -5183,6 +5183,26 @@ declare module _ {
backflow<TResult extends Function>(...funcs: Function[]): LoDashObjectWrapper<TResult>;
}
//_.before
interface LoDashStatic {
/**
* Creates a function that invokes func, with the this binding and arguments of the created function, while
* it is called less than n times. Subsequent calls to the created function return the result of the last func
* invocation.
* @param n The number of calls at which func is no longer invoked.
* @param func The function to restrict.
* @return Returns the new restricted function.
*/
before<TFunc extends Function>(n: number, func: TFunc): TFunc;
}
interface LoDashWrapper<T> {
/**
* @sed _.before
*/
before<TFunc extends Function>(func: TFunc): TFunc;
}
//_.bind
interface LoDashStatic {
/**