Sobes.tech
Middle+

Qual é a diferença entre a palavra-chave type e a interface em TypeScript? Fala sobre herança em tipos e interfaces.

sobes.tech IA

Resposta da IA

No TypeScript, a palavra-chave type é usada para declarar aliases de tipos, e interface para descrever estruturas de objetos e contratos.

  • interface destina-se a descrever a forma de um objeto, suporta extensão declarativa (herança) através de extends e pode ser estendido em múltiplos locais (fusão de declarações).
  • type permite criar aliases para quaisquer tipos (primitivos, uniões, interseções, tuplos, etc.), mas não suporta extensão declarativa, embora seja possível combinar tipos usando & (interseção) e | (união).

Herança:

  • Em interface, a herança ocorre através de extends:
interface A { a: string }
interface B extends A { b: number }
  • Em type, a herança é implementada através da interseção de tipos:
type A = { a: string }
type B = A & { b: number }

Principais diferenças:

  • interface é melhor para descrever objetos e classes, suporta extensão declarativa e união declarativa.
  • type é mais versátil, permite descrever tipos complexos, mas não suporta extensão declarativa de interfaces.

A escolha depende da tarefa: se precisar descrever a estrutura de um objeto com possibilidade de extensão — interface, se precisar de um tipo composto complexo — type.