ExpertiDict

TypeScript · Essencial · Português · Técnico

interface ou type

/ĩteɾˈfejsi ow ˈtajpi/locução

Escolha recorrente entre declarar um formato com interface ou com type alias. Ambos descrevem objetos, mas só interface funde declarações e só type nomeia uniões, tuplas e condicionais.

Onde usar

Aparece em guias de estilo e code reviews. Uma regra comum é interface para objetos e contratos públicos, e type para uniões e tipos derivados; o importante é o time seguir a mesma regra.

Em código

interface A { x: number }
interface A { y: number } // merge: x e y
type B = { x: number };
// type B = { y: number }; // erro: duplicado
type U = 'a' | 'b'; // só com type

Exemplos

Na dúvida entre interface ou type, o guia de estilo manda usar interface para objetos.

Esse caso é interface ou type? Tem união, então tem que ser type.

Cuidado

Para objetos simples os dois servem igual, então brigar por isso é perda de tempo; a diferença real é que interface aceita merging e type aceita uniões e tipos computados.

Veja também

Todos os termos de TypeScript