typestar

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

  1. Dos interfaces con el mismo nombre se fusionan en una.
  2. Solo un alias de tipo puede nombrar una unión o un tipo mapeado.
  3. extends en una interfaz, & en un alias.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 5 en Objetos e interfaces; paso 13 de 23 en Tipos y anotaciones.

← Anterior Siguiente →