type contra interface en TypeScript
Las interfaces se fusionan y se implementan; los alias de tipo se componen.
interface Tour {
slug: string;
}
interface Tour {
steps: number; // fusión de declaraciones: un solo Tour con ambas
}
interface Encore extends Tour {
script: string;
}
type Base = { slug: string };
type WithSteps = Base & { steps: number };
type Either = Base | { legacy: true };
const tour: Tour = { slug: "basics", steps: 26 };
const encore: Encore = { ...tour, script: "lines.ts" };
const merged: WithSteps = tour;
const either: Either = { legacy: true };
console.log(tour.steps, encore.script, merged.slug, "legacy" in either);
Cómo funciona
- Dos interfaces con el mismo nombre se fusionan en una.
- Solo un alias de tipo puede nombrar una unión o un tipo mapeado.
extendsen una interfaz,&en un alias.
Palabras clave y builtins usados aquí
EitherEncoreTourWithStepsconstextendsinterfacenumberstringtruetype
El intento, en números
- Líneas
- 22
- Caracteres a escribir
- 536
- Tokens
- 126
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 80 segundos.
Paso 3 de 5 en Objetos e interfaces; paso 13 de 23 en Tipos y anotaciones.