Sobes.tech
Middle

Qual é a diferença entre interface e type em TypeScript? O que preferes usar e em que situações?

sobes.tech IA

Resposta da IA

No TypeScript, interface e type são frequentemente usados para descrever tipos, mas há diferenças entre eles:

  • interface destina-se a descrever a estrutura de objetos e suporta fusão declarativa (declaration merging), o que é útil para expandir tipos em diferentes partes do código.
  • type é mais versátil: pode descrever não apenas objetos, mas também uniões, interseções, primitivos, etc.

Por exemplo:

interface User {
  name: string;
  age: number;
}

type ID = string | number;

type UserWithID = User & { id: ID };

Prefiro usar interface para descrever objetos quando preciso de capacidade de expansão e uma estrutura mais clara, e type para uniões complexas ou quando preciso descrever algo além de objetos. A escolha geralmente depende da tarefa e do estilo do projeto.