~/questoes/programacao
Interface e type são duas formas de criar tipos customizados em TypeScript, mas com propósitos ligeiramente diferentes. Interface é especializada em descrever estruturas de objetos, enquanto type oferece flexibilidade para trabalhar com union types, tuplas e outros padrões mais complexos.
A alternativa correta reconhece que interface funciona exclusivamente com objetos, enquanto type é versátil e trabalha com qualquer tipo de dado. Isso reflete a distinção fundamental entre essas duas ferramentas no TypeScript prático.
Interface é otimizada para descrever a forma de objetos. Type, por outro lado, é flexível o suficiente para definir tipos primitivos, union types (como string | number), tuplas, aliases e muito mais. Esta é a diferença arquitetural mais importante entre as duas.
Type não é exclusivamente para primitivos. Ele funciona com objetos também, e é especialmente útil justamente porque pode trabalhar com primitivos, unions e outros padrões que interface não consegue. Type é a opção mais versátil.
Type não é antigo nem foi substituído. Ambos continuam sendo usados ativamente em projetos TypeScript modernos. A escolha entre um e outro depende do caso de uso, não da antigüidade. Muitos projetos usam os dois juntos.
Interface pode ser estendida, mas type também permite herança através do operador & (intersecção). Além disso, type pode ser estendido de forma diferente, mas igualmente poderosa. Ambos suportam padrões de extensão e reutilização.