| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455 |
- import _ = require("../index");
- declare module "../index" {
- interface LoDashStatic {
- /**
- * The opposite of _.before; this method creates a function that invokes func once it’s called n or more times.
- *
- * @param n The number of calls before func is invoked.
- * @param func The function to restrict.
- * @return Returns the new restricted function.
- */
- after<TFunc extends (...args: any[]) => any>(n: number, func: TFunc): TFunc;
- }
- interface Primitive<T> {
- /**
- * @see _.after
- */
- after<TFunc extends (...args: any[]) => any>(func: TFunc): Function<TFunc>;
- }
- interface PrimitiveChain<T> {
- /**
- * @see _.after
- */
- after<TFunc extends (...args: any[]) => any>(func: TFunc): FunctionChain<TFunc>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that accepts up to n arguments ignoring any additional arguments.
- *
- * @param func The function to cap arguments for.
- * @param n The arity cap.
- * @returns Returns the new function.
- */
- ary(func: (...args: any[]) => any, n?: number): (...args: any[]) => any;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.ary
- */
- ary(n?: number): Function<(...args: any[]) => any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.ary
- */
- ary(n?: number): FunctionChain<(...args: any[]) => any>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that invokes func, with the this binding and arguments of the created function, while
- * it’s 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 (...args: any[]) => any>(n: number, func: TFunc): TFunc;
- }
- interface Primitive<T> {
- /**
- * @see _.before
- */
- before<TFunc extends (...args: any[]) => any>(func: TFunc): Function<TFunc>;
- }
- interface PrimitiveChain<T> {
- /**
- * @see _.before
- */
- before<TFunc extends (...args: any[]) => any>(func: TFunc): FunctionChain<TFunc>;
- }
- interface FunctionBind {
- /**
- * @see _.placeholder
- */
- placeholder: __;
- (func: (...args: any[]) => any, thisArg: any, ...partials: any[]): (...args: any[]) => any;
- }
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with the this binding of thisArg and prepends any additional _.bind
- * arguments to those provided to the bound function.
- *
- * The _.bind.placeholder value, which defaults to _ in monolithic builds, may be used as a placeholder for
- * partially applied arguments.
- *
- * Note: Unlike native Function#bind this method does not set the "length" property of bound functions.
- *
- * @param func The function to bind.
- * @param thisArg The this binding of func.
- * @param partials The arguments to be partially applied.
- * @return Returns the new bound function.
- */
- bind: FunctionBind;
- }
- interface LoDashImplicitWrapper<TValue> {
- /**
- * @see _.bind
- */
- bind(thisArg: any, ...partials: any[]): Function<(...args: any[]) => any>;
- }
- interface LoDashExplicitWrapper<TValue> {
- /**
- * @see _.bind
- */
- bind(thisArg: any, ...partials: any[]): FunctionChain<(...args: any[]) => any>;
- }
- interface FunctionBindKey {
- placeholder: __;
- (object: object, key: string, ...partials: any[]): (...args: any[]) => any;
- }
- interface LoDashStatic {
- /**
- * Creates a function that invokes the method at object[key] and prepends any additional _.bindKey arguments
- * to those provided to the bound function.
- *
- * This method differs from _.bind by allowing bound functions to reference methods that may be redefined
- * or don’t yet exist. See Peter Michaux’s article for more details.
- *
- * The _.bindKey.placeholder value, which defaults to _ in monolithic builds, may be used as a placeholder
- * for partially applied arguments.
- *
- * @param object The object the method belongs to.
- * @param key The key of the method.
- * @param partials The arguments to be partially applied.
- * @return Returns the new bound function.
- */
- bindKey: FunctionBindKey;
- }
- interface LoDashImplicitWrapper<TValue> {
- /**
- * @see _.bindKey
- */
- bindKey(key: string, ...partials: any[]): Function<(...args: any[]) => any>;
- }
- interface LoDashExplicitWrapper<TValue> {
- /**
- * @see _.bindKey
- */
- bindKey(key: string, ...partials: any[]): FunctionChain<(...args: any[]) => any>;
- }
- interface Curry {
- <T1, R>(func: (t1: T1) => R, arity?: number): CurriedFunction1<T1, R>;
- <T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): CurriedFunction2<T1, T2, R>;
- <T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): CurriedFunction3<T1, T2, T3, R>;
- <T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): CurriedFunction4<T1, T2, T3, T4, R>;
- <T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number): CurriedFunction5<T1, T2, T3, T4, T5, R>;
- (func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
- placeholder: __;
- }
- interface LoDashStatic {
- curry: Curry;
- }
- interface CurriedFunction1<T1, R> {
- (): CurriedFunction1<T1, R>;
- (t1: T1): R;
- }
- interface CurriedFunction2<T1, T2, R> {
- (): CurriedFunction2<T1, T2, R>;
- (t1: T1): CurriedFunction1<T2, R>;
- (t1: __, t2: T2): CurriedFunction1<T1, R>;
- (t1: T1, t2: T2): R;
- }
- interface CurriedFunction3<T1, T2, T3, R> {
- (): CurriedFunction3<T1, T2, T3, R>;
- (t1: T1): CurriedFunction2<T2, T3, R>;
- (t1: __, t2: T2): CurriedFunction2<T1, T3, R>;
- (t1: T1, t2: T2): CurriedFunction1<T3, R>;
- (t1: __, t2: __, t3: T3): CurriedFunction2<T1, T2, R>;
- (t1: T1, t2: __, t3: T3): CurriedFunction1<T2, R>;
- (t1: __, t2: T2, t3: T3): CurriedFunction1<T1, R>;
- (t1: T1, t2: T2, t3: T3): R;
- }
- interface CurriedFunction4<T1, T2, T3, T4, R> {
- (): CurriedFunction4<T1, T2, T3, T4, R>;
- (t1: T1): CurriedFunction3<T2, T3, T4, R>;
- (t1: __, t2: T2): CurriedFunction3<T1, T3, T4, R>;
- (t1: T1, t2: T2): CurriedFunction2<T3, T4, R>;
- (t1: __, t2: __, t3: T3): CurriedFunction3<T1, T2, T4, R>;
- (t1: __, t2: __, t3: T3): CurriedFunction2<T2, T4, R>;
- (t1: __, t2: T2, t3: T3): CurriedFunction2<T1, T4, R>;
- (t1: T1, t2: T2, t3: T3): CurriedFunction1<T4, R>;
- (t1: __, t2: __, t3: __, t4: T4): CurriedFunction3<T1, T2, T3, R>;
- (t1: T1, t2: __, t3: __, t4: T4): CurriedFunction2<T2, T3, R>;
- (t1: __, t2: T2, t3: __, t4: T4): CurriedFunction2<T1, T3, R>;
- (t1: __, t2: __, t3: T3, t4: T4): CurriedFunction2<T1, T2, R>;
- (t1: T1, t2: T2, t3: __, t4: T4): CurriedFunction1<T3, R>;
- (t1: T1, t2: __, t3: T3, t4: T4): CurriedFunction1<T2, R>;
- (t1: __, t2: T2, t3: T3, t4: T4): CurriedFunction1<T1, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4): R;
- }
- interface CurriedFunction5<T1, T2, T3, T4, T5, R> {
- (): CurriedFunction5<T1, T2, T3, T4, T5, R>;
- (t1: T1): CurriedFunction4<T2, T3, T4, T5, R>;
- (t1: __, t2: T2): CurriedFunction4<T1, T3, T4, T5, R>;
- (t1: T1, t2: T2): CurriedFunction3<T3, T4, T5, R>;
- (t1: __, t2: __, t3: T3): CurriedFunction4<T1, T2, T4, T5, R>;
- (t1: T1, t2: __, t3: T3): CurriedFunction3<T2, T4, T5, R>;
- (t1: __, t2: T2, t3: T3): CurriedFunction3<T1, T4, T5, R>;
- (t1: T1, t2: T2, t3: T3): CurriedFunction2<T4, T5, R>;
- (t1: __, t2: __, t3: __, t4: T4): CurriedFunction4<T1, T2, T3, T5, R>;
- (t1: T1, t2: __, t3: __, t4: T4): CurriedFunction3<T2, T3, T5, R>;
- (t1: __, t2: T2, t3: __, t4: T4): CurriedFunction3<T1, T3, T5, R>;
- (t1: __, t2: __, t3: T3, t4: T4): CurriedFunction3<T1, T2, T5, R>;
- (t1: T1, t2: T2, t3: __, t4: T4): CurriedFunction2<T3, T5, R>;
- (t1: T1, t2: __, t3: T3, t4: T4): CurriedFunction2<T2, T5, R>;
- (t1: __, t2: T2, t3: T3, t4: T4): CurriedFunction2<T1, T5, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4): CurriedFunction1<T5, R>;
- (t1: __, t2: __, t3: __, t4: __, t5: T5): CurriedFunction4<T1, T2, T3, T4, R>;
- (t1: T1, t2: __, t3: __, t4: __, t5: T5): CurriedFunction3<T2, T3, T4, R>;
- (t1: __, t2: T2, t3: __, t4: __, t5: T5): CurriedFunction3<T1, T3, T4, R>;
- (t1: __, t2: __, t3: T3, t4: __, t5: T5): CurriedFunction3<T1, T2, T4, R>;
- (t1: __, t2: __, t3: __, t4: T4, t5: T5): CurriedFunction3<T1, T2, T3, R>;
- (t1: T1, t2: T2, t3: __, t4: __, t5: T5): CurriedFunction2<T3, T4, R>;
- (t1: T1, t2: __, t3: T3, t4: __, t5: T5): CurriedFunction2<T2, T4, R>;
- (t1: T1, t2: __, t3: __, t4: T4, t5: T5): CurriedFunction2<T2, T3, R>;
- (t1: __, t2: T2, t3: T3, t4: __, t5: T5): CurriedFunction2<T1, T4, R>;
- (t1: __, t2: T2, t3: __, t4: T4, t5: T5): CurriedFunction2<T1, T3, R>;
- (t1: __, t2: __, t3: T3, t4: T4, t5: T5): CurriedFunction2<T1, T2, R>;
- (t1: T1, t2: T2, t3: T3, t4: __, t5: T5): CurriedFunction1<T4, R>;
- (t1: T1, t2: T2, t3: __, t4: T4, t5: T5): CurriedFunction1<T3, R>;
- (t1: T1, t2: __, t3: T3, t4: T4, t5: T5): CurriedFunction1<T2, R>;
- (t1: __, t2: T2, t3: T3, t4: T4, t5: T5): CurriedFunction1<T1, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
- }
- interface RightCurriedFunction1<T1, R> {
- (): RightCurriedFunction1<T1, R>;
- (t1: T1): R;
- }
- interface RightCurriedFunction2<T1, T2, R> {
- (): RightCurriedFunction2<T1, T2, R>;
- (t2: T2): RightCurriedFunction1<T1, R>;
- (t1: T1, t2: __): RightCurriedFunction1<T2, R>;
- (t1: T1, t2: T2): R;
- }
- interface RightCurriedFunction3<T1, T2, T3, R> {
- (): RightCurriedFunction3<T1, T2, T3, R>;
- (t3: T3): RightCurriedFunction2<T1, T2, R>;
- (t2: T2, t3: __): RightCurriedFunction2<T1, T3, R>;
- (t2: T2, t3: T3): RightCurriedFunction1<T1, R>;
- (t1: T1, t2: __, t3: __): RightCurriedFunction2<T2, T3, R>;
- (t1: T1, t2: T2, t3: __): RightCurriedFunction1<T3, R>;
- (t1: T1, t2: __, t3: T3): RightCurriedFunction1<T2, R>;
- (t1: T1, t2: T2, t3: T3): R;
- }
- interface RightCurriedFunction4<T1, T2, T3, T4, R> {
- (): RightCurriedFunction4<T1, T2, T3, T4, R>;
- (t4: T4): RightCurriedFunction3<T1, T2, T3, R>;
- (t3: T3, t4: __): RightCurriedFunction3<T1, T2, T4, R>;
- (t3: T3, t4: T4): RightCurriedFunction2<T1, T2, R>;
- (t2: T2, t3: __, t4: __): RightCurriedFunction3<T1, T3, T4, R>;
- (t2: T2, t3: T3, t4: __): RightCurriedFunction2<T1, T4, R>;
- (t2: T2, t3: __, t4: T4): RightCurriedFunction2<T1, T3, R>;
- (t2: T2, t3: T3, t4: T4): RightCurriedFunction1<T1, R>;
- (t1: T1, t2: __, t3: __, t4: __): RightCurriedFunction3<T2, T3, T4, R>;
- (t1: T1, t2: T2, t3: __, t4: __): RightCurriedFunction2<T3, T4, R>;
- (t1: T1, t2: __, t3: T3, t4: __): RightCurriedFunction2<T2, T4, R>;
- (t1: T1, t2: __, t3: __, t4: T4): RightCurriedFunction2<T2, T3, R>;
- (t1: T1, t2: T2, t3: T3, t4: __): RightCurriedFunction1<T4, R>;
- (t1: T1, t2: T2, t3: __, t4: T4): RightCurriedFunction1<T3, R>;
- (t1: T1, t2: __, t3: T3, t4: T4): RightCurriedFunction1<T2, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4): R;
- }
- interface RightCurriedFunction5<T1, T2, T3, T4, T5, R> {
- (): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
- (t5: T5): RightCurriedFunction4<T1, T2, T3, T4, R>;
- (t4: T4, t5: __): RightCurriedFunction4<T1, T2, T3, T5, R>;
- (t4: T4, t5: T5): RightCurriedFunction3<T1, T2, T3, R>;
- (t3: T3, t4: __, t5: __): RightCurriedFunction4<T1, T2, T4, T5, R>;
- (t3: T3, t4: T4, t5: __): RightCurriedFunction3<T1, T2, T5, R>;
- (t3: T3, t4: __, t5: T5): RightCurriedFunction3<T1, T2, T4, R>;
- (t3: T3, t4: T4, t5: T5): RightCurriedFunction2<T1, T2, R>;
- (t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction4<T1, T3, T4, T5, R>;
- (t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction3<T1, T4, T5, R>;
- (t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction3<T1, T3, T5, R>;
- (t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction3<T1, T3, T4, R>;
- (t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T1, T5, R>;
- (t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T1, T4, R>;
- (t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T1, T3, R>;
- (t2: T2, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T1, R>;
- (t1: T1, t2: __, t3: __, t4: __, t5: __): RightCurriedFunction4<T2, T3, T4, T5, R>;
- (t1: T1, t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction3<T3, T4, T5, R>;
- (t1: T1, t2: __, t3: T3, t4: __, t5: __): RightCurriedFunction3<T2, T4, T5, R>;
- (t1: T1, t2: __, t3: __, t4: T4, t5: __): RightCurriedFunction3<T2, T3, T5, R>;
- (t1: T1, t2: __, t3: __, t4: __, t5: T5): RightCurriedFunction3<T2, T3, T4, R>;
- (t1: T1, t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction2<T4, T5, R>;
- (t1: T1, t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction2<T3, T5, R>;
- (t1: T1, t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction2<T3, T4, R>;
- (t1: T1, t2: __, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T2, T5, R>;
- (t1: T1, t2: __, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T2, T4, R>;
- (t1: T1, t2: __, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T2, T3, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction1<T5, R>;
- (t1: T1, t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction1<T4, R>;
- (t1: T1, t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction1<T3, R>;
- (t1: T1, t2: __, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T2, R>;
- (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.curry
- */
- curry(arity?: number):
- T extends (arg1: infer T1) => infer R ? Function<CurriedFunction1<T1, R>> :
- T extends (arg1: infer T1, arg2: infer T2) => infer R ? Function<CurriedFunction2<T1, T2, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3) => infer R ? Function<CurriedFunction3<T1, T2, T3, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4) => infer R ? Function<CurriedFunction4<T1, T2, T3, T4, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4, arg5: infer T5) => infer R ? Function<CurriedFunction5<T1, T2, T3, T4, T5, R>> :
- Function<(...args: any[]) => any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.curry
- */
- curry(arity?: number):
- T extends (arg1: infer T1) => infer R ? FunctionChain<CurriedFunction1<T1, R>> :
- T extends (arg1: infer T1, arg2: infer T2) => infer R ? FunctionChain<CurriedFunction2<T1, T2, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3) => infer R ? FunctionChain<CurriedFunction3<T1, T2, T3, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4) => infer R ? FunctionChain<CurriedFunction4<T1, T2, T3, T4, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4, arg5: infer T5) => infer R ? FunctionChain<CurriedFunction5<T1, T2, T3, T4, T5, R>> :
- FunctionChain<(...args: any[]) => any>;
- }
- interface CurryRight {
- <T1, R>(func: (t1: T1) => R, arity?: number): RightCurriedFunction1<T1, R>;
- <T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): RightCurriedFunction2<T1, T2, R>;
- <T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): RightCurriedFunction3<T1, T2, T3, R>;
- <T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): RightCurriedFunction4<T1, T2, T3, T4, R>;
- <T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
- (func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
- placeholder: __;
- }
- interface LoDashStatic {
- curryRight: CurryRight;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.curryRight
- */
- curryRight(arity?: number):
- T extends (arg1: infer T1) => infer R ? Function<RightCurriedFunction1<T1, R>> :
- T extends (arg1: infer T1, arg2: infer T2) => infer R ? Function<RightCurriedFunction2<T1, T2, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3) => infer R ? Function<RightCurriedFunction3<T1, T2, T3, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4) => infer R ? Function<RightCurriedFunction4<T1, T2, T3, T4, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4, arg5: infer T5) => infer R ? Function<RightCurriedFunction5<T1, T2, T3, T4, T5, R>> :
- Function<(...args: any[]) => any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.curryRight
- */
- curryRight(arity?: number):
- T extends (arg1: infer T1) => infer R ? FunctionChain<RightCurriedFunction1<T1, R>> :
- T extends (arg1: infer T1, arg2: infer T2) => infer R ? FunctionChain<RightCurriedFunction2<T1, T2, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3) => infer R ? FunctionChain<RightCurriedFunction3<T1, T2, T3, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4) => infer R ? FunctionChain<RightCurriedFunction4<T1, T2, T3, T4, R>> :
- T extends (arg1: infer T1, arg2: infer T2, arg3: infer T3, arg4: infer T4, arg5: infer T5) => infer R ? FunctionChain<RightCurriedFunction5<T1, T2, T3, T4, T5, R>> :
- FunctionChain<(...args: any[]) => any>;
- }
- interface DebounceSettings {
- /**
- * @see _.leading
- */
- leading?: boolean | undefined;
- /**
- * @see _.maxWait
- */
- maxWait?: number | undefined;
- /**
- * @see _.trailing
- */
- trailing?: boolean | undefined;
- }
- interface DebounceSettingsLeading extends DebounceSettings {
- leading: true;
- }
- interface DebouncedFunc<T extends (...args: any[]) => any> {
- /**
- * Call the original function, but applying the debounce rules.
- *
- * If the debounced function can be run immediately, this calls it and returns its return
- * value.
- *
- * Otherwise, it returns the return value of the last invocation, or undefined if the debounced
- * function was not invoked yet.
- */
- (...args: Parameters<T>): ReturnType<T> | undefined;
- /**
- * Throw away any pending invocation of the debounced function.
- */
- cancel(): void;
- /**
- * If there is a pending invocation of the debounced function, invoke it immediately and return
- * its return value.
- *
- * Otherwise, return the value from the last invocation, or undefined if the debounced function
- * was never invoked.
- */
- flush(): ReturnType<T> | undefined;
- }
- interface DebouncedFuncLeading<T extends (...args: any[]) => any> extends DebouncedFunc<T> {
- (...args: Parameters<T>): ReturnType<T>;
- flush(): ReturnType<T>;
- }
- interface LoDashStatic {
- /**
- * Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since
- * the last time the debounced function was invoked. The debounced function comes with a cancel method to
- * cancel delayed invocations and a flush method to immediately invoke them. Provide an options object to
- * indicate that func should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent
- * calls to the debounced function return the result of the last func invocation.
- *
- * Note: If leading and trailing options are true, func is invoked on the trailing edge of the timeout only
- * if the the debounced function is invoked more than once during the wait timeout.
- *
- * See David Corbacho’s article for details over the differences between _.debounce and _.throttle.
- *
- * @param func The function to debounce.
- * @param wait The number of milliseconds to delay.
- * @param options The options object.
- * @param options.leading Specify invoking on the leading edge of the timeout.
- * @param options.maxWait The maximum time func is allowed to be delayed before it’s invoked.
- * @param options.trailing Specify invoking on the trailing edge of the timeout.
- * @return Returns the new debounced function.
- */
- debounce<T extends (...args: any) => any>(func: T, wait: number | undefined, options: DebounceSettingsLeading): DebouncedFuncLeading<T>;
- debounce<T extends (...args: any) => any>(func: T, wait?: number, options?: DebounceSettings): DebouncedFunc<T>;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.debounce
- */
- debounce(
- wait: number | undefined,
- options: DebounceSettingsLeading
- ): T extends (...args: any[]) => any ? Function<DebouncedFuncLeading<T>> : never;
- debounce(
- wait?: number,
- options?: DebounceSettings
- ): T extends (...args: any[]) => any ? Function<DebouncedFunc<T>> : never;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.debounce
- */
- debounce(
- wait: number | undefined,
- options: DebounceSettingsLeading
- ): T extends (...args: any[]) => any ? FunctionChain<DebouncedFuncLeading<T>> : never;
- debounce(
- wait?: number,
- options?: DebounceSettings
- ): T extends (...args: any[]) => any ? FunctionChain<DebouncedFunc<T>> : never;
- }
- interface LoDashStatic {
- /**
- * Defers invoking the func until the current call stack has cleared. Any additional arguments are provided to
- * func when it’s invoked.
- *
- * @param func The function to defer.
- * @param args The arguments to invoke the function with.
- * @return Returns the timer id.
- */
- defer(func: (...args: any[]) => any, ...args: any[]): number;
- }
- interface LoDashImplicitWrapper<TValue> {
- /**
- * @see _.defer
- */
- defer(...args: any[]): Primitive<number>;
- }
- interface LoDashExplicitWrapper<TValue> {
- /**
- * @see _.defer
- */
- defer(...args: any[]): PrimitiveChain<number>;
- }
- interface LoDashStatic {
- /**
- * Invokes func after wait milliseconds. Any additional arguments are provided to func when it’s invoked.
- *
- * @param func The function to delay.
- * @param wait The number of milliseconds to delay invocation.
- * @param args The arguments to invoke the function with.
- * @return Returns the timer id.
- */
- delay(func: (...args: any[]) => any, wait: number, ...args: any[]): number;
- }
- interface LoDashImplicitWrapper<TValue> {
- /**
- * @see _.delay
- */
- delay(wait: number, ...args: any[]): Primitive<number>;
- }
- interface LoDashExplicitWrapper<TValue> {
- /**
- * @see _.delay
- */
- delay(wait: number, ...args: any[]): PrimitiveChain<number>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that invokes `func` with arguments reversed.
- *
- * @category Function
- * @param func The function to flip arguments for.
- * @returns Returns the new function.
- * @example
- *
- * var flipped = _.flip(function() {
- * return _.toArray(arguments);
- * });
- *
- * flipped('a', 'b', 'c', 'd');
- * // => ['d', 'c', 'b', 'a']
- */
- flip<T extends (...args: any) => any>(func: T): T;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.flip
- */
- flip(): this;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.flip
- */
- flip(): this;
- }
- interface MemoizedFunction {
- /**
- * @see _.cache
- */
- cache: MapCache;
- }
- interface LoDashStatic {
- /**
- * Creates a function that memoizes the result of func. If resolver is provided it determines the cache key for
- * storing the result based on the arguments provided to the memoized function. By default, the first argument
- * provided to the memoized function is coerced to a string and used as the cache key. The func is invoked with
- * the this binding of the memoized function.
- *
- * @param func The function to have its output memoized.
- * @param resolver The function to resolve the cache key.
- * @return Returns the new memoizing function.
- */
- memoize: {
- <T extends (...args: any) => any>(func: T, resolver?: (...args: Parameters<T>) => any): T & MemoizedFunction;
- Cache: MapCacheConstructor;
- };
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.memoize
- */
- memoize(resolver?: (...args: any[]) => any): Function<T & MemoizedFunction>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.memoize
- */
- memoize(resolver?: (...args: any[]) => any): FunctionChain<T & MemoizedFunction>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that negates the result of the predicate func. The func predicate is invoked with
- * the this binding and arguments of the created function.
- *
- * @param predicate The predicate to negate.
- * @return Returns the new function.
- */
- negate<T extends any[]>(predicate: (...args: T) => boolean): (...args: T) => boolean;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.negate
- */
- negate(): Function<(...args: Parameters<T>) => boolean>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.negate
- */
- negate(): FunctionChain<(...args: Parameters<T>) => boolean>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that is restricted to invoking func once. Repeat calls to the function return the value
- * of the first call. The func is invoked with the this binding and arguments of the created function.
- *
- * @param func The function to restrict.
- * @return Returns the new restricted function.
- */
- once<T extends (...args: any) => any>(func: T): T;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.once
- */
- once(): Function<T>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.once
- */
- once(): FunctionChain<T>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that runs each argument through a corresponding transform function.
- *
- * @param func The function to wrap.
- * @param transforms The functions to transform arguments, specified as individual functions or arrays
- * of functions.
- * @return Returns the new function.
- */
- overArgs(func: (...args: any[]) => any, ...transforms: Array<Many<(...args: any[]) => any>>): (...args: any[]) => any;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.overArgs
- */
- overArgs(...transforms: Array<Many<(...args: any[]) => any>>): Function<(...args: any[]) => any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.overArgs
- */
- overArgs(...transforms: Array<Many<(...args: any[]) => any>>): FunctionChain<(...args: any[]) => any>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that, when called, invokes func with any additional partial arguments
- * prepended to those provided to the new function. This method is similar to _.bind except
- * it does not alter the this binding.
- * @param func The function to partially apply arguments to.
- * @param args Arguments to be partially applied.
- * @return The new partially applied function.
- */
- partial: Partial;
- }
- type __ = LoDashStatic;
- type Function0<R> = () => R;
- type Function1<T1, R> = (t1: T1) => R;
- type Function2<T1, T2, R> = (t1: T1, t2: T2) => R;
- type Function3<T1, T2, T3, R> = (t1: T1, t2: T2, t3: T3) => R;
- type Function4<T1, T2, T3, T4, R> = (t1: T1, t2: T2, t3: T3, t4: T4) => R;
- interface Partial {
- <T1, T2, R>(func: Function2<T1, T2, R>, plc1: __, arg2: T2): Function1<T1, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: __, arg2: T2): Function2<T1, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: __, plc2: __, arg3: T3): Function2<T1, T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: __, arg3: T3): Function1<T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: __, arg2: T2, arg3: T3): Function1<T1, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: __, arg2: T2): Function3<T1, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: __, plc2: __, arg3: T3): Function3<T1, T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: __, arg3: T3): Function2<T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: __, arg2: T2, arg3: T3): Function2<T1, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: __, plc2: __, plc3: __, arg4: T4): Function3<T1, T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: __, plc3: __, arg4: T4): Function2<T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: __, arg2: T2, plc3: __, arg4: T4): Function2<T1, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: __, arg4: T4): Function1<T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: __, plc2: __, arg3: T3, arg4: T4): Function2<T1, T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: __, arg3: T3, arg4: T4): Function1<T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: __, arg2: T2, arg3: T3, arg4: T4): Function1<T1, R>;
- <TS extends any[], R>(func: (...ts: TS) => R): (...ts: TS) => R;
- <TS extends any[], T1, R>(func: (t1: T1, ...ts: TS) => R, arg1: T1): (...ts: TS) => R;
- <TS extends any[], T1, T2, R>(func: (t1: T1, t2: T2, ...ts: TS) => R, t1: T1, t2: T2): (...ts: TS) => R;
- <TS extends any[], T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3, ...ts: TS) => R, t1: T1, t2: T2, t3: T3): (...ts: TS) => R;
- <TS extends any[], T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, ...ts: TS) => R, t1: T1, t2: T2, t3: T3, t4: T4): (...ts: TS) => R;
- placeholder: __;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.partial
- */
- partial<T2>(plc1: __, arg2: T2): Function<
- T extends Function2<infer T1, T2, infer R> ? Function1<T1, R> :
- T extends Function3<infer T1, T2, infer T3, infer R> ? Function2<T1, T3, R> :
- T extends Function4<infer T1, T2, infer T3, infer T4, infer R> ? Function3<T1, T3, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T3>(plc1: __, plc2: __, arg3: T3): Function<
- T extends Function3<infer T1, infer T2, T3, infer R> ? Function2<T1, T2, R> :
- T extends Function4<infer T1, infer T2, T3, infer T4, infer R> ? Function3<T1, T2, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T3>(arg1: T1, plc2: __, arg3: T3): Function<
- T extends Function3<T1, infer T2, T3, infer R> ? Function1<T2, R> :
- T extends Function4<T1, infer T2, T3, infer T4, infer R> ? Function2<T2, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T2, T3>(plc1: __, arg2: T2, arg3: T3): Function<
- T extends Function3<infer T1, T2, T3, infer R> ? Function1<T1, R> :
- T extends Function4<infer T1, T2, T3, infer T4, infer R> ? Function2<T1, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T3>(plc1: __, plc2: __, arg3: T3): Function<
- T extends Function4<infer T1, infer T2, T3, infer T4, infer R> ? Function3<T1, T2, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T4>(arg1: T1, plc2: __, plc3: __, arg4: T4): Function<
- T extends Function4<T1, infer T2, infer T3, T4, infer R> ? Function2<T2, T3, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T2, T4>(plc1: __, arg2: T2, plc3: __, arg4: T4): Function<
- T extends Function4<infer T1, T2, infer T3, T4, infer R> ? Function2<T1, T3, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2, T4>(arg1: T1, arg2: T2, plc3: __, arg4: T4): Function<
- T extends Function4<T1, T2, infer T3, T4, infer R> ? Function1<T3, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T3, T4>(plc1: __, plc2: __, arg3: T3, arg4: T4): Function<
- T extends Function4<infer T1, infer T2, T3, T4, infer R> ? Function2<T1, T2, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T3, T4>(arg1: T1, plc2: __, arg3: T3, arg4: T4): Function<
- T extends Function4<T1, infer T2, T3, T4, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T2, T3, T4>(plc1: __, arg2: T2, arg3: T3, arg4: T4): Function<
- T extends Function4<infer T1, T2, T3, T4, infer R> ? Function1<T1, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2, T3, T4>(arg1: T1, arg2: T2, arg3: T3, arg4: T4): Function<
- T extends (t1: T1, t2: T2, t3: T3, t4: T4, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2, T3>(arg1: T1, arg2: T2, arg3: T3): Function<
- T extends (t1: T1, t2: T2, t3: T3, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2>(arg1: T1, arg2: T2): Function<
- T extends (t1: T1, t2: T2, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1>(arg1: T1): Function<
- T extends (t1: T1, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial(): Function<T extends (...ts: any[]) => any ? T : any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.partial
- */
- partial<T2>(plc1: __, arg2: T2): FunctionChain<
- T extends Function2<infer T1, T2, infer R> ? Function1<T1, R> :
- T extends Function3<infer T1, T2, infer T3, infer R> ? Function2<T1, T3, R> :
- T extends Function4<infer T1, T2, infer T3, infer T4, infer R> ? Function3<T1, T3, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T3>(plc1: __, plc2: __, arg3: T3): FunctionChain<
- T extends Function3<infer T1, infer T2, T3, infer R> ? Function2<T1, T2, R> :
- T extends Function4<infer T1, infer T2, T3, infer T4, infer R> ? Function3<T1, T2, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T3>(arg1: T1, plc2: __, arg3: T3): FunctionChain<
- T extends Function3<T1, infer T2, T3, infer R> ? Function1<T2, R> :
- T extends Function4<T1, infer T2, T3, infer T4, infer R> ? Function2<T2, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T2, T3>(plc1: __, arg2: T2, arg3: T3): FunctionChain<
- T extends Function3<infer T1, T2, T3, infer R> ? Function1<T1, R> :
- T extends Function4<infer T1, T2, T3, infer T4, infer R> ? Function2<T1, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T3>(plc1: __, plc2: __, arg3: T3): FunctionChain<
- T extends Function4<infer T1, infer T2, T3, infer T4, infer R> ? Function3<T1, T2, T4, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T4>(arg1: T1, plc2: __, plc3: __, arg4: T4): FunctionChain<
- T extends Function4<T1, infer T2, infer T3, T4, infer R> ? Function2<T2, T3, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T2, T4>(plc1: __, arg2: T2, plc3: __, arg4: T4): FunctionChain<
- T extends Function4<infer T1, T2, infer T3, T4, infer R> ? Function2<T1, T3, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2, T4>(arg1: T1, arg2: T2, plc3: __, arg4: T4): FunctionChain<
- T extends Function4<T1, T2, infer T3, T4, infer R> ? Function1<T3, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T3, T4>(plc1: __, plc2: __, arg3: T3, arg4: T4): FunctionChain<
- T extends Function4<infer T1, infer T2, T3, T4, infer R> ? Function2<T1, T2, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T3, T4>(arg1: T1, plc2: __, arg3: T3, arg4: T4): FunctionChain<
- T extends Function4<T1, infer T2, T3, T4, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T2, T3, T4>(plc1: __, arg2: T2, arg3: T3, arg4: T4): FunctionChain<
- T extends Function4<infer T1, T2, T3, T4, infer R> ? Function1<T1, R> :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2, T3, T4>(arg1: T1, arg2: T2, arg3: T3, arg4: T4): FunctionChain<
- T extends (t1: T1, t2: T2, t3: T3, t4: T4, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2, T3>(arg1: T1, arg2: T2, arg3: T3): FunctionChain<
- T extends (t1: T1, t2: T2, t3: T3, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1, T2>(arg1: T1, arg2: T2): FunctionChain<
- T extends (t1: T1, t2: T2, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial<T1>(arg1: T1): FunctionChain<
- T extends (t1: T1, ...ts: infer TS) => infer R ? (...ts: TS) => R :
- any
- >;
- /**
- * @see _.partial
- */
- partial(): FunctionChain<T extends (...ts: any[]) => any ? T : any>;
- }
- interface LoDashStatic {
- /**
- * This method is like _.partial except that partial arguments are appended to those provided
- * to the new function.
- * @param func The function to partially apply arguments to.
- * @param args Arguments to be partially applied.
- * @return The new partially applied function.
- */
- partialRight: PartialRight;
- }
- interface PartialRight {
- <R>(func: Function0<R>): Function0<R>;
- <T1, R>(func: Function1<T1, R>): Function1<T1, R>;
- <T1, R>(func: Function1<T1, R>, arg1: T1): Function0<R>;
- <T1, T2, R>(func: Function2<T1, T2, R>): Function2<T1, T2, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, plc2: __): Function1<T2, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg2: T2): Function1<T1, R>;
- <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, arg2: T2): Function0<R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>): Function3<T1, T2, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: __, plc3: __): Function2<T2, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg2: T2, plc3: __): Function2<T1, T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, plc3: __): Function1<T3, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg3: T3): Function2<T1, T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: __, arg3: T3): Function1<T2, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg2: T2, arg3: T3): Function1<T1, R>;
- <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, arg3: T3): Function0<R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>): Function4<T1, T2, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: __, plc3: __, plc4: __): Function3<T2, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, plc3: __, plc4: __): Function3<T1, T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: __, plc4: __): Function2<T3, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg3: T3, plc4: __): Function3<T1, T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: __, arg3: T3, plc4: __): Function2<T2, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, arg3: T3, plc4: __): Function2<T1, T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, plc4: __): Function1<T4, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg4: T4): Function3<T1, T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: __, plc3: __, arg4: T4): Function2<T2, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, plc3: __, arg4: T4): Function2<T1, T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: __, arg4: T4): Function1<T3, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg3: T3, arg4: T4): Function2<T1, T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: __, arg3: T3, arg4: T4): Function1<T2, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, arg3: T3, arg4: T4): Function1<T1, R>;
- <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): Function0<R>;
- (func: (...args: any[]) => any, ...args: any[]): (...args: any[]) => any;
- placeholder: __;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.partialRight
- */
- partialRight<T1>(arg1: T1, plc2: __): Function<
- T extends Function2<T1, infer T2, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2>(arg2: T2): Function<
- T extends Function2<infer T1, T2, infer R> ? Function1<T1, R> : any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1>(arg1: T1, plc2: __, plc3: __): Function<
- T extends Function3<T1, infer T2, infer T3, infer R> ? Function2<T2, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2>(arg2: T2, plc3: __): Function<
- T extends Function3<infer T1, T2, infer T3, infer R> ? Function2<T1, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2>(arg1: T1, arg2: T2, plc3: __): Function<
- T extends Function3<T1, T2, infer T3, infer R> ? Function1<T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T3>(arg3: T3): Function<
- T extends Function3<infer T1, infer T2, T3, infer R> ? Function2<T1, T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T3>(arg1: T1, plc2: __, arg3: T3): Function<
- T extends Function3<T1, infer T2, T3, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T3>(arg2: T2, arg3: T3): Function<
- T extends Function3<infer T1, T2, T3, infer R> ? Function1<T1, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1>(arg1: T1, plc2: __, plc3: __, plc4: __): Function<
- T extends Function4<T1, infer T2, infer T3, infer T4, infer R> ? Function3<T2, T3, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2>(arg2: T2, plc3: __, plc4: __): Function<
- T extends Function4<infer T1, T2, infer T3, infer T4, infer R> ? Function3<T1, T3, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2>(arg1: T1, arg2: T2, plc3: __, plc4: __): Function<
- T extends Function4<T1, T2, infer T3, infer T4, infer R> ? Function2<T3, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T3>(arg3: T3, plc4: __): Function<
- T extends Function4<infer T1, infer T2, T3, infer T4, infer R> ? Function3<T1, T2, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T3>(arg1: T1, plc2: __, arg3: T3, plc4: __): Function<
- T extends Function4<T1, infer T2, infer T3, infer T4, infer R> ? Function2<T2, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T3>(arg2: T2, arg3: T3, plc4: __): Function<
- T extends Function4<infer T1, T2, T3, infer T4, infer R> ? Function2<T1, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2, T3>(arg1: T1, arg2: T2, arg3: T3, plc4: __): Function<
- T extends Function4<T1, T2, T3, infer T4, infer R> ? Function1<T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T4>(arg4: T4): Function<
- T extends Function4<infer T1, infer T2, infer T3, T4, infer R> ? Function3<T1, T2, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T4>(arg1: T1, plc2: __, plc3: __, arg4: T4): Function<
- T extends Function4<T1, infer T2, infer T3, T4, infer R> ? Function2<T2, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T4>(arg2: T2, plc3: __, arg4: T4): Function<
- T extends Function4<infer T1, T2, infer T3, T4, infer R> ? Function2<T1, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2, T4>(arg1: T1, arg2: T2, plc3: __, arg4: T4): Function<
- T extends Function4<T1, T2, infer T3, T4, infer R> ? Function1<T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T3, T4>(arg3: T3, arg4: T4): Function<
- T extends Function4<infer T1, infer T2, T3, T4, infer R> ? Function2<T1, T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T3, T4>(arg1: T1, plc2: __, arg3: T3, arg4: T4): Function<
- T extends Function4<T1, infer T2, T3, T4, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T3, T4>(arg2: T2, arg3: T3, arg4: T4): Function<
- T extends Function4<infer T1, T2, T3, T4, infer R> ? Function1<T1, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<TS extends any[]>(...ts: TS): Function<T extends (...args: TS) => infer R ? () => R : any>;
- /**
- * @see _.partialRight
- */
- partialRight(): Function<T extends (...ts: any[]) => any ? T : any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.partialRight
- */
- partialRight<T1>(arg1: T1, plc2: __): FunctionChain<
- T extends Function2<T1, infer T2, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2>(arg2: T2): FunctionChain<
- T extends Function2<infer T1, T2, infer R> ? Function1<T1, R> : any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1>(arg1: T1, plc2: __, plc3: __): FunctionChain<
- T extends Function3<T1, infer T2, infer T3, infer R> ? Function2<T2, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2>(arg2: T2, plc3: __): FunctionChain<
- T extends Function3<infer T1, T2, infer T3, infer R> ? Function2<T1, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2>(arg1: T1, arg2: T2, plc3: __): FunctionChain<
- T extends Function3<T1, T2, infer T3, infer R> ? Function1<T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T3>(arg3: T3): FunctionChain<
- T extends Function3<infer T1, infer T2, T3, infer R> ? Function2<T1, T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T3>(arg1: T1, plc2: __, arg3: T3): FunctionChain<
- T extends Function3<T1, infer T2, T3, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T3>(arg2: T2, arg3: T3): FunctionChain<
- T extends Function3<infer T1, T2, T3, infer R> ? Function1<T1, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1>(arg1: T1, plc2: __, plc3: __, plc4: __): FunctionChain<
- T extends Function4<T1, infer T2, infer T3, infer T4, infer R> ? Function3<T2, T3, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2>(arg2: T2, plc3: __, plc4: __): FunctionChain<
- T extends Function4<infer T1, T2, infer T3, infer T4, infer R> ? Function3<T1, T3, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2>(arg1: T1, arg2: T2, plc3: __, plc4: __): FunctionChain<
- T extends Function4<T1, T2, infer T3, infer T4, infer R> ? Function2<T3, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T3>(arg3: T3, plc4: __): FunctionChain<
- T extends Function4<infer T1, infer T2, T3, infer T4, infer R> ? Function3<T1, T2, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T3>(arg1: T1, plc2: __, arg3: T3, plc4: __): FunctionChain<
- T extends Function4<T1, infer T2, infer T3, infer T4, infer R> ? Function2<T2, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T3>(arg2: T2, arg3: T3, plc4: __): FunctionChain<
- T extends Function4<infer T1, T2, T3, infer T4, infer R> ? Function2<T1, T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2, T3>(arg1: T1, arg2: T2, arg3: T3, plc4: __): FunctionChain<
- T extends Function4<T1, T2, T3, infer T4, infer R> ? Function1<T4, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T4>(arg4: T4): FunctionChain<
- T extends Function4<infer T1, infer T2, infer T3, T4, infer R> ? Function3<T1, T2, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T4>(arg1: T1, plc2: __, plc3: __, arg4: T4): FunctionChain<
- T extends Function4<T1, infer T2, infer T3, T4, infer R> ? Function2<T2, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T4>(arg2: T2, plc3: __, arg4: T4): FunctionChain<
- T extends Function4<infer T1, T2, infer T3, T4, infer R> ? Function2<T1, T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T2, T4>(arg1: T1, arg2: T2, plc3: __, arg4: T4): FunctionChain<
- T extends Function4<T1, T2, infer T3, T4, infer R> ? Function1<T3, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T3, T4>(arg3: T3, arg4: T4): FunctionChain<
- T extends Function4<infer T1, infer T2, T3, T4, infer R> ? Function2<T1, T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T1, T3, T4>(arg1: T1, plc2: __, arg3: T3, arg4: T4): FunctionChain<
- T extends Function4<T1, infer T2, T3, T4, infer R> ? Function1<T2, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<T2, T3, T4>(arg2: T2, arg3: T3, arg4: T4): FunctionChain<
- T extends Function4<infer T1, T2, T3, T4, infer R> ? Function1<T1, R> :
- any
- >;
- /**
- * @see _.partialRight
- */
- partialRight<TS extends any[]>(...ts: TS): FunctionChain<T extends (...args: TS) => infer R ? () => R : any>;
- /**
- * @see _.partialRight
- */
- partialRight(): FunctionChain<T extends (...ts: any[]) => any ? T : any>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with arguments arranged according to the specified indexes where the
- * argument value at the first index is provided as the first argument, the argument value at the second index
- * is provided as the second argument, and so on.
- * @param func The function to rearrange arguments for.
- * @param indexes The arranged argument indexes, specified as individual indexes or arrays of indexes.
- * @return Returns the new function.
- */
- rearg(func: (...args: any[]) => any, ...indexes: Array<Many<number>>): (...args: any[]) => any;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.rearg
- */
- rearg(...indexes: Array<Many<number>>): Function<(...args: any[]) => any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.rearg
- */
- rearg(...indexes: Array<Many<number>>): FunctionChain<(...args: any[]) => any>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with the this binding of the created function and arguments from start
- * and beyond provided as an array.
- *
- * Note: This method is based on the rest parameter.
- *
- * @param func The function to apply a rest parameter to.
- * @param start The start position of the rest parameter.
- * @return Returns the new function.
- */
- rest(func: (...args: any[]) => any, start?: number): (...args: any[]) => any;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.rest
- */
- rest(start?: number): Function<(...args: any[]) => any>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.rest
- */
- rest(start?: number): FunctionChain<(...args: any[]) => any>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that invokes func with the this binding of the created function and an array of arguments
- * much like Function#apply.
- *
- * Note: This method is based on the spread operator.
- *
- * @param func The function to spread arguments over.
- * @return Returns the new function.
- */
- spread<TResult>(func: (...args: any[]) => TResult, start?: number): (...args: any[]) => TResult;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.spread
- */
- spread(start?: number): Function<(...args: any[]) => ReturnType<T>>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.spread
- */
- spread(start?: number): FunctionChain<(...args: any[]) => ReturnType<T>>;
- }
- interface ThrottleSettings {
- /**
- * @see _.leading
- */
- leading?: boolean | undefined;
- /**
- * @see _.trailing
- */
- trailing?: boolean | undefined;
- }
- type ThrottleSettingsLeading = (ThrottleSettings & { leading: true }) | Omit<ThrottleSettings, 'leading'>
- interface LoDashStatic {
- /**
- * Creates a throttled function that only invokes func at most once per every wait milliseconds. The throttled
- * function comes with a cancel method to cancel delayed invocations and a flush method to immediately invoke
- * them. Provide an options object to indicate that func should be invoked on the leading and/or trailing edge
- * of the wait timeout. Subsequent calls to the throttled function return the result of the last func call.
- *
- * Note: If leading and trailing options are true, func is invoked on the trailing edge of the timeout only if
- * the the throttled function is invoked more than once during the wait timeout.
- *
- * @param func The function to throttle.
- * @param wait The number of milliseconds to throttle invocations to.
- * @param options The options object.
- * @param options.leading Specify invoking on the leading edge of the timeout.
- * @param options.trailing Specify invoking on the trailing edge of the timeout.
- * @return Returns the new throttled function.
- */
- throttle<T extends (...args: any) => any>(func: T, wait?: number, options?: ThrottleSettingsLeading): DebouncedFuncLeading<T>;
- throttle<T extends (...args: any) => any>(func: T, wait?: number, options?: ThrottleSettings): DebouncedFunc<T>;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.throttle
- */
- throttle(
- wait?: number,
- options?: ThrottleSettingsLeading
- ): T extends (...args: any[]) => any ? Function<DebouncedFuncLeading<T>> : never;
- throttle(
- wait?: number,
- options?: ThrottleSettings
- ): T extends (...args: any[]) => any ? Function<DebouncedFunc<T>> : never;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.throttle
- */
- throttle(
- wait?: number,
- options?: ThrottleSettingsLeading
- ): T extends (...args: any[]) => any ? FunctionChain<DebouncedFuncLeading<T>> : never;
- throttle(
- wait?: number,
- options?: ThrottleSettings
- ): T extends (...args: any[]) => any ? FunctionChain<DebouncedFunc<T>> : never;
- }
- interface LoDashStatic {
- /**
- * Creates a function that accepts up to one argument, ignoring any
- * additional arguments.
- *
- * @category Function
- * @param func The function to cap arguments for.
- * @returns Returns the new function.
- * @example
- *
- * _.map(['6', '8', '10'], _.unary(parseInt));
- * // => [6, 8, 10]
- */
- unary<T, TResult>(func: (arg1: T, ...args: any[]) => TResult): (arg1: T) => TResult;
- }
- interface Function<T extends (...args: any) => any> {
- /**
- * @see _.unary
- */
- unary(): Function<(arg1: Parameters<T>['0']) => ReturnType<T>>;
- }
- interface FunctionChain<T extends (...args: any) => any> {
- /**
- * @see _.unary
- */
- unary(): FunctionChain<(arg1: Parameters<T>['0']) => ReturnType<T>>;
- }
- interface LoDashStatic {
- /**
- * Creates a function that provides value to the wrapper function as its first argument. Any additional
- * arguments provided to the function are appended to those provided to the wrapper function. The wrapper is
- * invoked with the this binding of the created function.
- *
- * @param value The value to wrap.
- * @param wrapper The wrapper function.
- * @return Returns the new function.
- */
- wrap<T, TArgs, TResult>(value: T, wrapper: (value: T, ...args: TArgs[]) => TResult): (...args: TArgs[]) => TResult;
- }
- interface LoDashImplicitWrapper<TValue> {
- /**
- * @see _.wrap
- */
- wrap<TArgs, TResult>(wrapper: (value: TValue, ...args: TArgs[]) => TResult): Function<(...args: TArgs[]) => TResult>;
- }
- interface LoDashExplicitWrapper<TValue> {
- /**
- * @see _.wrap
- */
- wrap<TArgs, TResult>(wrapper: (value: TValue, ...args: TArgs[]) => TResult): FunctionChain<(...args: TArgs[]) => TResult>;
- }
- }
|