Tipos de objeto en TypeScript
Opcionales, readonly, firmas de índice y chequeo de propiedades sobrantes.
interface Step {
readonly idx: number;
title: string;
stars?: number;
[extra: string]: unknown;
}
const step: Step = { idx: 0, title: "Literal types", note: "extra allowed" };
function summarize({ idx, title, stars = 0 }: Step): string {
return `${idx} ${title} ${stars}`;
}
interface Strict {
slug: string;
}
const source = { slug: "basics", steps: 26 };
const strict: Strict = source; // bien: no es un literal recién creado
// const inline: Strict = { slug: "basics", steps: 26 }; // propiedad sobrante
console.log(summarize(step), strict.slug);
Cómo funciona
?vuelve opcional una propiedad;readonlybloquea la asignación.- Una firma de índice tipa las claves que no nombraste.
- Un literal de objeto recién creado se chequea por propiedades sobrantes.
Palabras clave y builtins usados aquí
StepStrictconstfunctioninterfacenumberreadonlyreturnstring
El intento, en números
- Líneas
- 22
- Caracteres a escribir
- 553
- Tokens
- 120
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 76 segundos.
Paso 2 de 5 en Objetos e interfaces; paso 12 de 23 en Tipos y anotaciones.