Interfaces vs. Alias de tipo
Parte de la sección Introducción a TypeScript del Journey de JavaScript de Coddy. Lección 40 de 73.
Ahora que has aprendido sobre los alias de tipo y las interfaces para definir formas de objetos, es importante entender cuándo utilizar cada enfoque. Aunque sirven para propósitos similares, existen diferencias clave que pueden influir en tu elección.
Similitudes: Tanto las interfaces como los alias de tipo pueden definir la estructura de los objetos con el mismo nivel de seguridad de tipos. Puedes usar cualquiera de los dos enfoques para especificar propiedades obligatorias, propiedades opcionales y propiedades readonly. Ambos también admiten la extensión o combinación con otros tipos.
Diferencia clave - Fusión de declaraciones: La diferencia más significativa es que las interfaces admiten la fusión de declaraciones, mientras que los alias de tipo no lo hacen. Esto significa que puedes declarar la misma interfaz varias veces, y TypeScript fusionará automáticamente todas las declaraciones en una sola interfaz:
interface User {
name: string;
}
interface User {
age: number;
}
// TypeScript combina estos en:
// interface User {
// name: string;
// age: number;
// }Si intentas el mismo enfoque con alias de tipo, TypeScript lanzará un error sobre identificadores duplicados. Esta capacidad de combinación hace que las interfaces sean particularmente útiles al trabajar con bibliotecas o cuando necesitas extender definiciones de tipos existentes en diferentes partes de tu base de código.
Cuándo elegir: Usa interfaces al definir formas de objetos que podrían necesitar ser extendidas o fusionadas más adelante. Usa alias de tipo cuando necesites operaciones de tipo más complejas como uniones, intersecciones o al trabajar con tipos primitivos.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Introducción a TypeScript
1Primeros pasos con TS
¿Qué es TypeScript?¿Por qué usar TypeScript?Tu primer código en TypeScriptProceso de compilación y erroresResumen: Introducción a TS4Trabajando con funciones
Tipado de parámetros y valores de retornoTipado de funciones de flechaEl tipo de retorno 'void'Parámetros opcionales con '?'Valores de parámetros por defectoTipado de parámetros restDefinición de tipos de funcionesRepaso: Construcción de funciones tipadas2Tipos principales
Tipos básicos: str, num, booleanEl tipo 'any': Vía de escapeEl tipo 'unknown'Trabajando con 'null' y 'undef'Inferencia de tipos en acciónAnotaciones de tipo explícitasResumen: Práctica de tipos principales5Tipos: Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de unión ('|')Trabajando con tipos de uniónTipos literalesTipos de intersección ('&')Combinando alias de tiposRepaso: Combinaciones de tipos avanzadas3Estructura de datos: Arrays y Tuplas
Arrays tipadosModificador 'readonly' para Arrays¿Qué es una Tupla?Declaración y acceso a TuplasDesestructuración de TuplasTuplas ReadonlyArrays tipados multidimensionalesOperador Spread con ArraysResumen: Arrays y Tuplas6Tipado de Objetos e Interfaces
Anotaciones de tipo de objeto en líneaAlias de tipo para objetosIntroducción a las interfacesInterfaces vs. Alias de tipoPropiedades opcionales y ReadonlyExtensión de interfaces y tiposAgregar métodos a interfacesRepaso: Definición de estructuras de objetosPractica por tu cuenta: Compilador de JavaScript online