Interfaces vs. Type Aliases
Parte da seção Introdução ao TypeScript do Journey de JavaScript da Coddy. Lição 40 de 73.
Agora que você aprendeu sobre aliases de tipos e interfaces para definir formatos de objetos, é importante entender quando usar cada abordagem. Embora tenham finalidades semelhantes, existem diferenças importantes que podem influenciar sua escolha.
Semelhanças: Tanto as interfaces quanto os aliases de tipo podem definir a estrutura de objetos com o mesmo nível de segurança de tipos. Você pode usar qualquer uma das abordagens para especificar propriedades obrigatórias, propriedades opcionais e propriedades somente leitura. Ambas também permitem estender ou combinar com outros tipos.
Diferença principal - Mesclagem de declarações: A diferença mais significativa é que as interfaces oferecem suporte à mesclagem de declarações, enquanto os aliases de tipo não. Isso significa que você pode declarar a mesma interface várias vezes, e o TypeScript mesclará automaticamente todas as declarações em uma única interface:
interface User {
name: string;
}
interface User {
age: number;
}
// O TypeScript mescla estes em:
// interface User {
// name: string;
// age: number;
// }Se você tentar a mesma abordagem com aliases de tipo, o TypeScript gerará um erro sobre identificadores duplicados. Essa capacidade de mesclagem torna as interfaces particularmente úteis ao trabalhar com bibliotecas ou quando você precisa estender definições de tipo existentes em diferentes partes da sua base de código.
Quando escolher: Use interfaces ao definir estruturas de objetos que talvez precisem ser estendidas ou mescladas posteriormente. Use aliases de tipo quando precisar de operações de tipo mais complexas, como uniões, interseções ou ao trabalhar com tipos primitivos.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Introdução ao TypeScript
1Primeiros Passos com TS
O que é TypeScript?Por que usar TypeScript?Seu Primeiro Código TypeScriptProcesso de Compilação e ErrosRecapitulação: Introdução ao TS4Trabalhando com Funções
Tipagem de Parâmetros e RetornosTipagem de Arrow FunctionsO Tipo de Retorno 'void'Parâmetros Opcionais com '?'Valores Padrão de ParâmetrosTipagem de Rest ParametersDefinindo Tipos de FunçõesRecapitulação: Criando Funções Tipadas2Tipos Principais
Tipos Básicos: str, num, booleanO Tipo 'any': Válvula de EscapeO Tipo 'unknown'Trabalhando com 'null' e 'undef'Inferência de Tipo na PráticaAnotações de Tipo ExplícitasRecapitulação: Prática de Tipos Principais5Tipos: Aliases, Uniões e Interseções
Aliases de Tipos para PrimitivosTipos de União ('|')Trabalhando com Tipos de UniãoTipos LiteraisTipos de Interseção ('&')Combinando Aliases de TiposRecapitulação: Combinações Avançadas de Tipos3Estrutura de Dados: Arrays e Tuplas
Arrays TipadosModificador 'readonly' para ArraysO que é uma Tupla?Declarando e Acessando TuplasDesestruturando TuplasTuplas ReadonlyArrays Tipados MultidimensionaisSpread Operator com ArraysRecapitulação: Arrays e Tuplas6Tipagem de Objetos e Interfaces
Anotações de Tipo de Objeto InlineType Aliases para ObjetosIntrodução a InterfacesInterfaces vs. Type AliasesProps Opcionais e ReadonlyEstendendo Interfaces e TiposAdicionando Métodos a InterfacesRecapitulação: Definindo Formatos de ObjetosPratique por conta própria: Compilador de JavaScript online