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.
interfacedestina-se a descrever a forma de um objeto, suporta extensão declarativa (herança) através deextendse pode ser estendido em múltiplos locais (fusão de declarações).typepermite 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 deextends:
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.