AnyCompiler

Módulos e a Biblioteca Padrão

O código TypeScript costuma ser dividido entre vários arquivos, conectados com import e export — a mesma sintaxe que o JavaScript moderno usa. Este compilador roda um único arquivo por vez, então imports entre vários arquivos não podem ser demonstrados diretamente aqui, mas tudo mais nesta lição roda exatamente como mostrado.

Utility types — construindo novos tipos a partir dos existentes

O TypeScript vem com um punhado de utility types embutidos que transformam um tipo que você já tem. Partial<T> torna cada propriedade de T opcional — útil para algo como uma função de atualização onde você só fornece os campos que estão mudando.

interface Product {
  id: number;
  name: string;
  price: number;
}

function updateProduct(product: Product, changes: Partial<Product>): Product {
  return { ...product, ...changes };
}

const original: Product = { id: 1, name: "Keyboard", price: 50 };
const updated = updateProduct(original, { price: 45 });
console.log(updated);
Output
{ id: 1, name: 'Keyboard', price: 45 }

Pick<T, Keys> constrói um novo tipo com apenas as propriedades listadas de T; Record<Keys, Type> constrói um tipo de objeto onde cada key de Keys mapeia para o mesmo tipo de valor. Ambos são formas de derivar um tipo novo e preciso a partir de um que você já definiu, em vez de escrevê-lo à mão.

interface Product {
  id: number;
  name: string;
  price: number;
}

type ProductSummary = Pick<Product, "id" | "name">;

const summary: ProductSummary = { id: 1, name: "Keyboard" };
console.log(summary);
Output
{ id: 1, name: 'Keyboard' }

Esse é o núcleo do sistema de tipos do TypeScript sobre o JavaScript. A partir daqui, o melhor próximo passo é praticar — escolha uma ideia pequena e a construa, apoiando-se nos tipos para detectar erros ao longo do caminho.

← Type NarrowingMais lições em breve