typestar

Inferencia en TypeScript

Dónde deduce el tipo TypeScript, y cómo ayudarlo.

function pick<const T extends readonly string[]>(values: T): T[number] {
  return values[0]!;
}

function withDefault<T>(value: T | undefined, fallback: NoInfer<T>): T {
  return value ?? fallback;
}

function pair<A, B = A>(first: A, second: B): [A, B] {
  return [first, second];
}

const chosen = pick(["go", "ts"]); // "go" | "ts", not string
const seconds = withDefault(undefined as number | undefined, 60);
const mixed = pair("a", 1);
const same = pair("a", "b");

console.log(chosen, seconds, mixed[1], same[1]);

Cómo funciona

  1. La inferencia fluye desde los argumentos, de izquierda a derecha.
  2. Un parámetro de tipo const mantiene estrechos los literales.
  3. NoInfer impide que una posición dirija la inferencia.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
513
Tokens
157
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

Paso 3 de 4 en Parámetros de tipo; paso 3 de 20 en Genéricos.

← Anterior Siguiente →