Biblioteca Padrão TypeScript: Visão Geral Completa
TypeScript é um superconjunto estritamente tipado do JavaScript que compila para JS comum. No entanto, sua força não está apenas no sistema de tipos. A biblioteca padrão embutida do TypeScript fornece ferramentas poderosas para trabalhar com tipos, utilitários e metaprogramação. Neste artigo, vamos analisar os principais componentes da biblioteca padrão do TypeScript, mostrar exemplos de uso e dar dicas práticas.
O que é a biblioteca padrão do TypeScript?
A biblioteca padrão do TypeScript é um conjunto de tipos, interfaces e utilitários embutidos que acompanham o compilador. Ela inclui:
- Tipos básicos (
string,number,boolean,any,unknown,never,void). - Tipos utilitários (
Partial,Required,Pick,Omit,Recorde outros). - Decoradores (funcionalidade experimental para metaprogramação).
- Namespaces (
namespace) e módulos. - Tipos avançados (
Promise,Map,Set,WeakMap,WeakSet). - Tipos para trabalhar com DOM (incluídos via
lib: ["dom"]).
Tipos utilitários: o coração da biblioteca
Os tipos utilitários permitem transformar tipos existentes sem duplicar código. Vamos ver os mais populares:
Partial e Required
interface User { id: number; name: string; email: string;}
// Todos os campos se tornam opcionaistype PartialUser = Partial<User>;
// Todos os campos se tornam obrigatórios (se eram opcionais)type RequiredUser = Required<PartialUser>;Pick e Omit
interface Product { id: number; title: string; price: number; description: string;}
// Seleciona apenas os campos necessáriostype ProductPreview = Pick<Product, 'id' | 'title'>;
// Exclui campos desnecessáriostype ProductWithoutDesc = Omit<Product, 'description'>;Record e Readonly
// Cria um objeto com chaves e valores definidostype UserRoles = Record<'admin' | 'user' | 'guest', string>;
// Torna todos os campos somente leituratype ReadonlyUser = Readonly<User>;Trabalhando com Promise e Assincronia
O TypeScript fornece tipos embutidos para trabalhar com código assíncrono:
async function fetchData(): Promise<string> { return "dados carregados";}
// Tipo para o resultado da Promisetype DataType = Awaited<ReturnType<typeof fetchData>>; // stringDecoradores: Metaprogramação em TypeScript
Decoradores são declarações especiais que permitem anotar e modificar classes, métodos, propriedades e parâmetros. Eles são amplamente usados em frameworks (Angular, NestJS).
Exemplo de decorador de classe
function sealed(constructor: Function) { Object.seal(constructor); Object.seal(constructor.prototype);}
@sealedclass Calculator { add(a: number, b: number): number { return a + b; }}Exemplo de decorador de método
function log(target: any, key: string, descriptor: PropertyDescriptor) { const original = descriptor.value; descriptor.value = function (...args: any[]) { console.log(`Método ${key} chamado com argumentos: ${args}`); return original.apply(this, args); }; return descriptor;}
class UserService { @log getUser(id: number): string { return `Usuário ${id}`; }}Namespaces
Namespaces ajudam a organizar o código e evitar
Também na biblioteca
Monitoramento de aplicações Java: ferramentas e bibliotecas para coleta de métricas
Jackson para Java: guia completo com exemplos
Trabalhando com S3 e armazenamentos em nuvem em TypeScript: bibliotecas e exemplos
Monitoramento de aplicações TypeScript: bibliotecas, ferramentas e configuração
Geolocalização e mapas em Go: visão geral de bibliotecas e exemplos de código