Biblioteca Padrão TypeScript: Visão Geral Completa

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 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, Record e 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>>; // string


Decoradores: 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

Recommendations