Prompteo

Unidad 3 · 1 min

Objetos, interfaces y alias

Tipos de objeto, propiedades opcionales y la diferencia real entre interface y type.

Objetos, interfaces y alias

Un tipo de objeto se puede escribir directamente en la firma:

function printCoord(pt: { x: number; y: number }) {
  console.log(pt.x);
}

Una propiedad opcional lleva ?:

function printName(obj: { first: string; last?: string }) {
  console.log(obj.last?.toUpperCase());
}

Alias de tipo

Un alias le pone nombre a un tipo:

type Point = { x: number; y: number };
type ID = number | string;

El alias es solo un nombre: no crea una versión distinta del tipo.

Interfaces

interface Point {
  x: number;
  y: number;
}

La diferencia que importa

| | interface | type | |---|---|---| | Extender | interface Bear extends Animal {} | type Bear = Animal & {} | | Reabrir | Sí, se puede volver a declarar y se fusiona | No: da error de identificador duplicado |

La heurística de la documentación es simple: usa interface hasta que necesites algo que solo type puede hacer. Un ejemplo de eso es nombrar una unión, como type ID = number | string, que con interface no se puede.