Object
O módulo object
fornece um conjunto abrangente de funções utilitárias para manipulação de objetos em JavaScript/TypeScript. Estas funções facilitam operações comuns como clonagem profunda, acesso a propriedades aninhadas, mesclagem de objetos, transformações de estrutura e verificações de estado.
Principais recursos:
- Manipulação segura de objetos aninhados
- Transformações de estrutura (flatten/unflatten)
- Operações de imutabilidade (freeze/seal)
- Utilitários de verificação e comparação
- Funções de seleção e omissão de propriedades
Visão Geral
clone<T>(value: T): T
Realiza uma cópia profunda de qualquer valor, incluindo objetos, arrays e tipos primitivos.
flattenObj(obj): Record<string, any>
Transforma um objeto aninhado em um objeto plano, com caminhos completos como chaves.
freeze(obj: Record<PropertyKey, any>): Record<PropertyKey, any>
Congela recursivamente um objeto e todos os seus objetos internos, tornando-os imutáveis.
get<T>(obj: T, path: string | string[], defaultValue?: any): any
Acessa o valor de uma propriedade aninhada em um objeto, com suporte a valor padrão.
has<T>(obj: T, path: string | string[]): boolean
Verifica se um objeto possui uma propriedade (aninhada) especificada por um caminho.
isEmpty(value): boolean
Verifica se um valor (objeto, array, string, Map ou Set) está vazio.
isEqual(value1, value2): boolean
Compara dois valores para determinar se são equivalentes em estrutura e conteúdo.
isFrozen(obj): boolean
Verifica se um objeto está congelado (imutável).
isNotNullObject(value): boolean
Verifica se um valor é um objeto não nulo.
isPlainObject(value): boolean
Verifica se um valor é um objeto simples, criado por literal ou por Object.
isSealed(obj): boolean
Verifica se um objeto está selado (não pode adicionar/remover propriedades).
merge(target, ...sources): object
Combina dois ou mais objetos em um novo objeto, realizando mesclagem profunda.
omit(obj, keys): object
Cria uma cópia de um objeto, excluindo as propriedades especificadas.
pick(obj, keys): object
Cria um novo objeto contendo apenas as propriedades especificadas do original.
seal(obj): object
Sela recursivamente um objeto, impedindo adição ou remoção de propriedades.
set(obj, path, value): object
Define o valor de uma propriedade em um objeto, suportando caminhos aninhados.
unflattenObj(obj): object
Reconstrói objetos aninhados a partir de um objeto com chaves planas.