typestar

keyof y acceso indexado en TypeScript

Los dos operadores con los que se construye todo helper genérico.

interface Run {
  lang: string;
  tpm: number;
  stars: 1 | 2 | 3;
}

type RunKey = keyof Run;
type RunValue = Run[keyof Run];
type Stars = Run["stars"];

function get<T, K extends keyof T>(source: T, key: K): T[K] {
  return source[key];
}

function pluck<T, K extends keyof T>(rows: T[], key: K): T[K][] {
  return rows.map((row) => row[key]);
}

const run: Run = { lang: "ts", tpm: 98, stars: 3 };
const key: RunKey = "tpm";
const value: RunValue = get(run, key);
console.log(value, pluck([run, run], "lang"));

Cómo funciona

  1. keyof T es la unión de las claves de T.
  2. T[K] es el tipo de esa propiedad.
  3. T[keyof T] es la unión de todos los tipos de los valores.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
22
Caracteres a escribir
503
Tokens
176
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 106 segundos.

Escribe este fragmento

Paso 1 de 4 en Leer tipos; paso 5 de 20 en Genéricos.

← Anterior Siguiente →