Fn
Function utilities for functional programming patterns.
Provides utilities for function composition, currying, partial application, piping, and common functional patterns like identity and constant functions. Includes function analysis tools and endomorphism utilities.
Import
import { Fn } from '@wollybeard/kit'
import * as Fn from '@wollybeard/kit/fn'
Basic Functions
[F]
constant
<value>(value: value): () => value
[F]
noop
(): void
[F]
$identityPartial
<value>(value: PartialDeep<value>): value
[F]
identity
(value: $value): $value
[T]
identity
type identity<$Value = any> = <$value extends $Value>(value: $value) => $value
Composition
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
Pipe a value through a series of unary functions.
Examples:
const add1 = (x: number) => x + 1
const double = (x: number) => x * 2
const toString = (x: number) => x.toString()
Fn.pipe(5, add1, double) // 12
Fn.pipe(5, add1, double, toString) // "12"
Currying & Binding
[F]
bind
<fn extends AnyAny>(fn: AnyAnyParametersMin1 extends fn ? fn : { Error: "Given function must have at least one parameter"; }, arg: Parameters < fn > [0]): bind<fn>
[T]
bind
type bind<$Fn extends AnyAnyParametersMin1> = $Fn extends
(...args: [any, ...infer __args_tail__]) => infer __return__
? (...args: __args_tail__) => __return__
: never
[F]
applySecond
<fn extends (...args: any[]) => (arg: any) => any, arg > (fn: fn, arg: arg): applySecond<fn, arg>
Apply the second parameter of a curried function. For a function (a) = (b) = c and a value b, returns (a) = c Useful for creating service interfaces from curried operations.
[T]
applySecond
type applySecond<$Fn, $Arg> = $Fn extends
(...args: infer __args__) => (arg: $Arg) => infer __return__
? (...args: __args__) => __return__
: never
Apply the second parameter of a curried function. For a function (a) = (b) = c, returns (a) = c Useful for creating service interfaces from curried operations.
[F]
curry
<fn extends AnyAny>(fn: AnyAnyParametersMin1 extends fn ? fn : { Error: "Given function must have at least one parameter"; }): curry<fn>
[T]
curry
type curry<fn extends AnyAny> = fn extends
(...args: infer __args__) => infer __return__
? Curry__Signature<__args__, __return__>
: never
[F]
uncurry
<fn extends AnyAny2Curried>(fn: fn): uncurry<fn>
[T]
uncurry
type uncurry<$Fn extends AnyAny2Curried> = $Fn extends
(...args: infer __arg1__) => (...args: infer __arg2__) => infer __return__
? (...args: [...__arg1__, ...__arg2__]) => __return__
: never
[F]
flipCurried
<fn extends AnyAny2Curried>(fn: fn): flipCurried<fn>
[T]
flipCurried
type flipCurried<$Fn extends AnyAny2Curried> = $Fn extends
(...args: infer __args1__) => (...args: infer __args2__) => infer __return__
? (...args: __args2__) => (...args: __args1__) => __return__
: never
Endomorphisms
[T]
endo
type endo<$T = any> = ($value: $T) => $T
Endomorphism
- a function from a type to itself.
Unlike identity, this doesn't preserve the exact value, just ensures the output type matches the input type.
Examples:
// Builder pattern
type BuilderOp = Fn.endo<StringBuilder>
const addText: BuilderOp = sb => sb.append('text')
// Transformations
type StringTransform = Fn.endo<string>
const uppercase: StringTransform = s => s.toUpperCase()
const trim: StringTransform = s => s.trim()
// Chainable operations
type ChainOp = Fn.endo<ChainableAPI>
const configure: ChainOp = api => api.setOption('key', 'value')
[F]
endo
(value: any): any
The identity endomorphism
- returns the value unchanged. This is both an endomorphism and the identity function.
Examples:
const result = Fn.endo(5) // returns 5
const obj = { a: 1 }
const same = Fn.endo(obj) // returns the same object reference
Introspection
[U]
Parameter
type Parameter = { type: 'name'; value: string } | {
type: 'destructured'
names: string[]
}
[F]
analyzeFunction
(fn: (...args: any[]) => unknown): { body: string; parameters: Parameter[]; }
Parameters:
fn
- The function to analyze
Returns: An object containing the function's cleaned body and parameters
Throws:
- Error If the function cannot be parsed or has invalid structure
Analyze a function to extract its parameter information and body.
Parses a function's string representation to extract:
- Parameter names (both regular and destructured parameters)
- Function body (both statement and expression forms, trimmed and dedented)
The returned body is already cleaned: leading/trailing whitespace removed and common indentation stripped away for clean display in its isolated form.
Examples:
const fn = (a, { b, c }) => a + b + c
const info = Fn.analyzeFunction(fn)
// info.parameters: [{ type: 'name', value: 'a' }, { type: 'destructured', names: ['b', 'c'] }]
// info.body: "a + b + c" (already trimmed and dedented)
[F]
isUnary
(fn: (...args: any[]) => unknown): boolean
Parameters:
fn
- The function to check
Returns: True if the function has exactly one parameter, false otherwise
Check if a function is unary (has exactly one parameter).
Examples:
const unary = (x: number) => x * 2
const binary = (a: number, b: number) => a + b
const nullary = () => 42
Fn.isUnary(unary) // true
Fn.isUnary(binary) // false
Fn.isUnary(nullary) // false
Partial Application
[C]
_
typeof _
Symbol used to represent a hole in partial application. When used as an argument, indicates that the parameter should be deferred.
Examples:
const add = (a: number, b: number) => a + b
const addOne = partial(add, _, 1) // (a: number) => number
addOne(5) // 6
[T]
_
type _ = typeof _
[F]
isHole
(value: unknown): boolean
Type guard to check if a value is a hole.
[F]
partial
<$Fn extends Fn.AnyAny, $Args extends readonly unknown[] > (fn: $Fn, ...args ?: $Args): any
Parameters:
fn
- The function to partially applyargs
- Arguments with holes (_) for deferred parameters
Returns: A new function accepting the remaining arguments, or the result if all arguments are provided
Create a partially applied function by providing some arguments upfront. Use the hole symbol (_) to defer parameters.
Examples:
// Basic usage
const add = (a: number, b: number) => a + b
const addOne = Fn.partial(add, _, 1)
addOne(5) // 6
// Multiple holes
const greet = (greeting: string, name: string, punctuation: string) =>
`${greeting}, ${name}${punctuation}`
const casualGreet = Fn.partial(greet, 'Hey', _, '!')
casualGreet('Alice') // 'Hey, Alice!'
// All arguments provided - executes immediately
const result = Fn.partial(add, 1, 2) // 3
[C]
apply
;(<$Fn extends Fn.AnyAny, const $Args extends readonly unknown[]>(
fn: $Fn,
...args: $Args
) => any)
Type-safe partial application with automatic type inference. This is an alias for partial
with a more explicit name.
Examples:
const multiply = (a: number, b: number, c: number) => a * b * c
const double = Fn.apply(multiply, 2, _, 1)
double(5) // 10
[F]
defer
<$Fn extends Fn.AnyAny>(fn: $Fn, ...args ?: Parameters<$Fn>): () => ReturnType<$Fn>
Helper to create a deferred computation using partial application. Useful for creating thunks or delayed evaluations.
Examples:
const expensiveComputation = (a: number, b: number) => {
console.log('Computing...')
return a * b
}
const deferred = Fn.defer(expensiveComputation, 5, 10)
// Nothing logged yet
const result = deferred() // Logs: 'Computing...'
// result: 50
[F]
isPartialArg
(_value: unknown): boolean
Check if a value is potentially a partially applicable argument (either a hole or a regular value).
Type Guards
[C]
is
TypeGuard<AnyAny>
Type Utilities
[T]
AnyAny
type AnyAny = (...args: any[]) => any
[T]
AnyAnyParameters2
type AnyAnyParameters2 = (arg1: any, arg2: any) => any
[T]
AnyAnyParametersMin1
type AnyAnyParametersMin1 = (...args: [any, ...any[]]) => any
[T]
AnyAnyParametersMin2
type AnyAnyParametersMin2 = (...args: [any, any, ...any[]]) => any
[T]
AnyAnyParametersMin3
type AnyAnyParametersMin3 = (...args: [any, any, any, ...any[]]) => any
[T]
AnyAnyAsync
type AnyAnyAsync = (...args: any[]) => Prom.AnyAny
[T]
GuardedType
type GuardedType<$T> = $T extends (x: any) => x is infer __u__ ? __u__ : never
Extract the guarded type from a type guard function.
Examples:
const isString = (x: any): x is string => typeof x === 'string'
type T = GuardedType<typeof isString> // string
[T]
ReturnExtract
type ReturnExtract<$Type, $Fn extends AnyAny> = $Fn extends
(...args: infer __args__) => infer __return__ ? (
...args: __args__
) => __return__ extends Prom.AnyAny
? Promise<Extract<Awaited<__return__>, $Type>>
: Extract<__return__, $Type>
: never
Modify function such that it only returns the given type.
Automatically handles async functions by unwrapping the Promise, extracting the type, and rewrapping in a Promise. For sync functions, the type is extracted directly.
Assumes that the given type is among the possible return types of the function.
Examples:
// Sync function
type Fn1 = (x: number) => string | number
type Result1 = ReturnExtract<string, Fn1> // (x: number) => string
// Async function - automatically unwraps and rewraps Promise
type Fn2 = (x: number) => Promise<string | number>
type Result2 = ReturnExtract<string, Fn2> // (x: number) => Promise<string>
[T]
ReturnReplace
type ReturnReplace<$Fn extends AnyAny, $Type> = $Fn extends
(...args: infer __args__) => infer __return__ ? (...args: __args__) => $Type
: never
[T]
ReturnExclude
type ReturnExclude<$Type, $Fn extends AnyAny> = $Fn extends
(...args: infer __args__) => infer __return__ ? (
...args: __args__
) => __return__ extends Prom.AnyAny
? Promise<Exclude<Awaited<__return__>, $Type>>
: Exclude<__return__, $Type>
: never
Modify function such that it does not return the given type.
Automatically handles async functions by unwrapping the Promise, excluding the type, and rewrapping in a Promise. For sync functions, the type is excluded directly.
If function does not return the given the type, then this is effectively an identity function.
Examples:
// Sync function
type Fn1 = (x: number) => string | null
type Result1 = ReturnExclude<null, Fn1> // (x: number) => string
// Async function - automatically unwraps and rewraps Promise
type Fn2 = (x: number) => Promise<string | null>
type Result2 = ReturnExclude<null, Fn2> // (x: number) => Promise<string>
[T]
ReturnExcludeNull
type ReturnExcludeNull<$Fn extends AnyAny> = ReturnExclude<null, $Fn>
[T]
ReturnInclude
type ReturnInclude<$Type, $Fn extends AnyAny> = $Fn extends
(...args: infer __args__) => infer __return__ ? (
...args: __args__
) => __return__ extends Prom.AnyAny ? Promise<$Type | Awaited<__return__>>
: $Type | __return__
: never
Modify function such that it can return an additional type along with its original return types.
Automatically handles async functions by unwrapping the Promise, adding the type to the union, and rewrapping in a Promise. For sync functions, the type is added directly to the return type union.
This is useful for functions that may return early with a specific type (like void).
Examples:
// Sync function
type Fn1 = (x: number) => string
type Result1 = ReturnInclude<null, Fn1> // (x: number) => string | null
// Async function - automatically unwraps and rewraps Promise
type Fn2 = (x: number) => Promise<string>
type Result2 = ReturnInclude<null, Fn2> // (x: number) => Promise<string | null>
[T]
AnyAny2Curried
type AnyAny2Curried = (arg1: any) => (arg2: any) => any
Other
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value
[F]
pipe
<value>(value: value): value
<value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
<value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
(value: any, ...fns ?: (value: any) => any)[]): any
Parameters:
value
- The initial value to pipe through the functions
Returns: The final transformed value