Biblioteca Padrão do TypeScript: Visão Geral Completa
TypeScript é um superconjunto estritamente tipado do JavaScript que adiciona tipagem estática e ferramentas poderosas para o desenvolvimento de aplicações de grande porte. Ao contrário de muitas linguagens, o TypeScript não possui uma biblioteca padrão embutida extensa no sentido clássico (como, por exemplo, Java ou Python). Em vez disso, ele fornece um conjunto de tipos embutidos, utilitários para trabalhar com tipos, decoradores e ferramentas do compilador. Neste artigo, vamos detalhar todos os componentes-chave da biblioteca padrão do TypeScript.
1. Tipos de Dados Embutidos
TypeScript inclui todos os tipos primitivos do JavaScript e adiciona os seus próprios:
boolean— tipo lógiconumber— números (inteiros e ponto flutuante)string— stringsnulleundefined— valores especiaissymbol— identificadores únicosbigint— números inteiros grandesany— desativação da verificação de tiposunknown— alternativa segura ao anynever— tipo para funções que nunca terminamvoid— ausência de valor de retorno
Exemplo de uso de tipos embutidos:
let isDone: boolean = false;let decimal: number = 42;let color: string = "azul";let notSure: unknown = 4;notSure = "agora é string"; // permitido
function error(message: string): never { throw new Error(message);}2. Tipos Utilitários (Utility Types)
TypeScript fornece utilitários embutidos poderosos para transformação de tipos. Aqui estão os mais úteis:
- Partial<T> — torna todos os campos do tipo T opcionais
- Required<T> — torna todos os campos obrigatórios
- Readonly<T> — torna todos os campos somente leitura
- Pick<T, K> — seleciona as chaves especificadas do tipo
- Omit<T, K> — exclui as chaves especificadas
- Record<K, T> — cria um tipo de objeto com chaves K e valores T
- Exclude<T, U> — exclui tipos presentes em U
- ReturnType<T> — extrai o tipo de retorno de uma função
Exemplo de uso de tipos utilitários:
interface User { id: number; name: string; email: string;}
// Atualização parcial do usuáriofunction updateUser(id: number, changes: Partial<User>): void { // Lógica de atualização}
// Somente leituraconst readonlyUser: Readonly<User> = { id: 1, name: "João", email: "joao@example.com"};
// Seleção de campostype UserName = Pick<User, "name" | "email">;3. Decoradores
Decoradores são declarações especiais que permitem modificar classes, métodos, propriedades e parâmetros. TypeScript suporta vários tipos de decoradores:
- Decoradores de classe — aplicados ao construtor da classe
- Decoradores de método — aplicados aos métodos da classe
- Decoradores de propriedade — aplicados às propriedades
- Decoradores de parâmetro — aplicados aos parâmetros dos métodos
Exemplo de decorador de método para logging:
function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value; descriptor.value = function (...args: any[]) { console.log(`Chamada ${propertyKey} com argumentos: ${JSON.stringify(args)}`); return originalMethod.apply(th Também na biblioteca
Event Bus e padrão Observer em Go (Golang): implementação e exemplos
validator — Validação de dados em Rust
Internacionalização (i18n) em JavaScript (Node.js): biblioteca i18next
Validação de dados em Node.js com Joi: guia completo