ts-functional-pipe para TypeScript: guia completo com exemplos

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

ts-functional-pipe para TypeScript: guia completo com exemplos

1. O que é e para que serve

ts-functional-pipe é uma biblioteca leve para TypeScript que oferece um operador de pipe (pipe) poderoso e type-safe, além de um conjunto de utilitários para composição funcional. Diferente da proposta nativa do operador |> em JavaScript (que ainda não foi padronizada), esta biblioteca permite que você use hoje uma sintaxe elegante e legível para processamento sequencial de dados. A ideia principal é substituir chamadas de funções aninhadas (f(g(h(x)))) por uma cadeia linear (pipe(x, h, g, f)), melhorando significativamente a legibilidade e a manutenibilidade do código.

Para que serve? No desenvolvimento moderno com TypeScript, frequentemente precisamos realizar várias transformações sequenciais em dados: filtragem, mapeamento, ordenação, validação, transformação. Sem o pipe, esse código se transforma em uma "pirâmide" de funções aninhadas ou em uma cadeia de variáveis mutáveis. O ts-functional-pipe resolve esse problema fornecendo uma forma declarativa de descrever o fluxo de dados. A biblioteca é totalmente tipada, o que significa que o TypeScript verificará os tipos em cada etapa do pipe, prevenindo erros em tempo de compilação.

A biblioteca é especialmente útil em projetos que adotam uma abordagem funcional: processamento de arrays, trabalho com Observable (RxJS), transformação de respostas de API, construção de middlewares e muito mais. Ela não impõe paradigmas, apenas oferece uma ferramenta conveniente para composição de funções. O ts-functional-pipe não é apenas um pipe, mas um conjunto completo de funções auxiliares que tornam a programação funcional em TypeScript confortável e segura.

2. Instalação

A instalação da biblioteca é feita com o gerenciador de pacotes padrão npm (ou yarn/pnpm). A biblioteca é escrita em TypeScript e já vem com arquivos de declaração de tipos prontos, portanto não é necessário instalar @types separadamente.

# Instalação via npm
npm install ts-functional-pipe

# Instalação via yarn
yarn add ts-functional-pipe

# Instalação via pnpm
pnpm add ts-functional-pipe

Após a instalação, você pode importar as funções necessárias no seu projeto:

import { pipe, compose, map, filter, reduce } from 'ts-functional-pipe';

3. Início rápido — exemplo mínimo funcional

Vamos começar com o exemplo mais simples: transformar um número aplicando várias operações. Sem a biblioteca, isso seria Math.sqrt(Math.abs(-25)). Com o ts-functional-pipe, podemos escrever de forma linear:

import { pipe } from 'ts-functional-pipe';

// Definindo funções simples
const addOne = (x: number): number => x + 1;
const double = (x: number): number => x * 2;
const toString = (x: number): string => `Resultado: ${x}`;

// Usando pipe para aplicação sequencial
const result = pipe(
    5,          // Valor inicial
    addOne,     // 5 + 1 = 6
    double,     // 6 * 2 = 12
    toString    // "Resultado: 12"
);

console.log(result); // Saída: "Resultado: 12"

Como você pode ver, o código é lido de cima para baixo, o que é muito mais intuitivo do que chamadas aninhadas. O pipe automaticamente passa o resultado da função anterior como argumento para a próxima.

4. Métodos/funções principais

A biblioteca oferece um conjunto rico de funções. Vamos explorar 8 das principais.

4.1. pipe

Recommendations