DEV Community

Cover image for TypeScript: Dominando a Arte dos Tipos com Type e Interface
Ronis
Ronis

Posted on • Edited on

1

TypeScript: Dominando a Arte dos Tipos com Type e Interface

O TypeScript tem conquistado cada vez mais espaço no desenvolvimento web, e seu trunfo é a capacidade de adicionar tipos ao JavaScript, elevando a segurança e confiabilidade do código. Mas, na hora de definir tipos, surge a dúvida: Type ou Interface? Neste post, vamos desvendar as nuances entre essas duas ferramentas e te ajudar a escolher a melhor para cada situação.

Type e Interface: Dois Lados da Mesma Moeda?

Tanto Type quanto Interface são mecanismos para definir tipos no TypeScript, mas cada um tem seu próprio nicho.

  • Type: Brilha ao lidar com tipos primitivos (strings, números, booleanos) e tipos literais (valores específicos). Ele é como um canivete suíço, oferecendo flexibilidade para criar uniões, intersecções e outros tipos personalizados.
  • Interface: É a escolha ideal para modelar objetos e suas propriedades. Pense nela como um molde que define a estrutura de um objeto, garantindo que ele siga as regras estabelecidas.

Exemplos:

// Type: Flexibilidade para tipos primitivos e literais
type CorPrimaria = 'vermelho' | 'azul' | 'amarelo';
type Ponto2D = { x: number; y: number };

// Interface: Ideal para modelar objetos
interface Usuario {
  nome: string;
  idade: number;
  email: string;
}
Enter fullscreen mode Exit fullscreen mode
Característica Type Interface
Herança Não suporta herança direta. Suporta herança múltipla (extensão de outras interfaces).
Reutilização Mais limitado, ideal para tipos simples e específicos. Permite reutilização de código em diferentes partes do projeto.
Extensibilidade Altamente extensível, permitindo uniões, intersecções e mais. Menos flexível, focada na definição da estrutura de objetos.

Qual a Melhor Escolha?

A decisão entre Type e Interface depende do seu objetivo:
Type: Use para tipos primitivos, literais, uniões, intersecções e quando precisar de máxima flexibilidade na criação de tipos personalizados.
Interface: Use para modelar objetos, definir contratos para classes e quando precisar de herança múltipla.

Resumo:

Type e Interface são ferramentas poderosas para garantir a tipagem segura no TypeScript. Dominar suas particularidades te permite escrever código mais robusto, legível e fácil de manter. Experimente, explore e descubra qual delas se encaixa melhor em cada situação do seu projeto!

Dica Bônus: A comunidade TypeScript tem uma leve preferência por Interfaces para definir objetos, mas a escolha final é sua. O importante é entender as diferenças e usar a ferramenta certa para cada tipo de dado.

Top comments (0)

typescript

11 Tips That Make You a Better Typescript Programmer

1 Think in {Set}

Type is an everyday concept to programmers, but it’s surprisingly difficult to define it succinctly. I find it helpful to use Set as a conceptual model instead.

#2 Understand declared type and narrowed type

One extremely powerful typescript feature is automatic type narrowing based on control flow. This means a variable has two types associated with it at any specific point of code location: a declaration type and a narrowed type.

#3 Use discriminated union instead of optional fields

...

Read the whole post now!