Function
O módulo function
fornece um conjunto de utilitários para manipulação e composição de funções. Estas utilidades ajudam a criar funções mais flexíveis e reutilizáveis, facilitando operações comuns como memoização, composição funcional e aplicação parcial de argumentos.
Principais recursos:
- Composição de funções (
compose
,pipe
) - Memoização de resultados (
memo
) - Aplicação parcial de argumentos (
partialLeft
,partialRight
) - Funções utilitárias (
identity
,noop
,not
,once
) - Execução condicional (
when
) - Execução repetida (
times
)
Visão Geral
compose<T>(...callbacks: ((value: T) => T)[]): (value: T) => T
Cria uma função composta que executa uma sequência de funções da direita para a esquerda.
identity<T>(value: T): T
Retorna o valor recebido sem modificações.
memo<T extends (...args: any[]) => any>(callback: T, options?: { cacheTimeout?: number, serializer?: (args: Parameters<T>) => string }): (...args: Parameters<T>) => ReturnType<T>
Cria uma função memoizada que armazena em cache os resultados de chamadas anteriores.
noop(): void
Função que não faz nada (no operation).
not<T extends (...args: any[]) => boolean>(callback: T): (...args: Parameters<T>) => boolean
Cria uma função que retorna o valor booleano invertido do resultado da função fornecida.
once<T extends (...args: any[]) => any>(callback: T): (...args: Parameters<T>) => ReturnType<T>
Cria uma função que só pode ser executada uma vez; chamadas subsequentes retornam o resultado da primeira execução.
partialLeft<Args extends any[], R, P extends Partial<Args>>(
callback: (...args: Args) => R,
...partial: P
): (...args: DropFirst<Args> extends P ? [] : DropFirst<Args>) => R
Cria uma nova função com argumentos pré-preenchidos à esquerda.
partialRight<Args extends any[], R, P extends Partial<Args>>(
callback: (...args: Args) => R | Promise<R>,
...partial: P
): (...args: DropLast<Args, P>) => R | Promise<R>
Cria uma nova função com argumentos pré-preenchidos à direita.
pipe<T>(...callbacks: ((value: T) => T)[]): (value: T) => T
Cria uma função composta que executa uma sequência de funções da esquerda para a direita.
times<T>(callback: (index: number) => T, count: number): T[]
Executa uma função callback um número específico de vezes, retornando um array com os resultados.
when<T extends (...args: any) => any>(
predicate: (...args: any) => boolean,
action: T
): (...args: Parameters<T>) => ReturnType<T> | undefined
Cria uma função que executa uma ação somente se o predicado for verdadeiro.