remeda para TypeScript: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Biblioteca remeda para TypeScript: Guia Completo

No desenvolvimento web moderno com TypeScript, manipular dados é uma das tarefas mais comuns. A biblioteca remeda (anteriormente conhecida como Remeda) é uma alternativa moderna e type-safe ao Lodash, projetada especificamente para TypeScript. Neste artigo, vamos explorar o que é remeda, como instalá-la, quais métodos ela oferece e como usá-la em projetos reais.

1. O que é e por que usar

Remeda é uma biblioteca de utilitários para programação funcional em TypeScript. Diferente do Lodash, que foi originalmente escrito para JavaScript e só depois recebeu tipos, a remeda foi projetada desde o início com tipagem estrita em mente. Isso significa que todas as funções são totalmente type-safe: o compilador TypeScript pode inferir tipos precisos de entrada e saída, reduzindo significativamente erros em tempo de execução.

Por que usar remeda? Primeiro, ela oferece funções convenientes para trabalhar com arrays, objetos, strings e outras estruturas de dados usadas no dia a dia. Segundo, remeda incentiva o estilo funcional de programação: a maioria das funções são puras, não mutam os dados originais e podem ser facilmente combinadas com pipes. Terceiro, remeda é extremamente leve (tree-shakeable), permitindo incluir no bundle apenas as funções realmente utilizadas.

Principais vantagens da remeda sobre o Lodash: suporte completo a TypeScript "de fábrica", imutabilidade por padrão, suporte a pipes para composição de funções e uma API mais moderna, alinhada aos padrões ES6+.

2. Instalação

A remeda é distribuída via npm. Para instalá-la, execute o comando:

npm install remeda

Ou, se você usa yarn:

yarn add remeda

Após a instalação, você pode importar funções individualmente (recomendado para tree-shaking) ou o módulo inteiro:

// Importando funções individuais (recomendado)
import { pipe, map, filter } from 'remeda';

// Importando o módulo completo
import * as R from 'remeda';

3. Primeiros passos — exemplo mínimo funcional

Vamos criar um exemplo simples: temos um array de números, queremos filtrar os pares, multiplicar cada um por 2 e exibir o resultado.

import { pipe, filter, map } from 'remeda';

const numbers = [1, 2, 3, 4, 5, 6];

const result = pipe(
    numbers,
    filter(x => x % 2 === 0), // [2, 4, 6]
    map(x => x * 2)           // [4, 8, 12]
);

console.log(result); // [4, 8, 12]

Perceba como o código é lido como uma sequência de operações: "pegar numbers, filtrar os pares, depois multiplicar por 2". Essa é a essência da abordagem funcional promovida pela remeda.

4. Principais métodos/funções

Vamos explorar 8 funções essenciais da remeda. Para cada uma, mostramos a assinatura, uma breve descrição e um exemplo.

4.1. pipe

Assinatura: pipe<A, B, C, ...>(value: A, ...fns: Function[]): LastReturnType

O que faz: Recebe um valor inicial e uma lista de funções. Aplica cada função sequencialmente ao resultado da anterior. É a principal forma de composição na remeda.

import { pipe } from 'remeda';

const addOne = (x: number) => x + 1;
const double = (x: number) => x * 2;

const result = pipe(5, addOne, double); // (5 + 1) * 2 = 12
console.log(result); // 12

4.2. map

Assinatura: map<T, R>(fn: (value: T, index: number, array: T[]) => R): (array: T[]) => R[]

Recommendations