typestar

Qué enciende strict en TypeScript

Los flags individuales detrás de strict, mostrados por lo que atrapa cada uno.

// strictNullChecks: null no es asignable a string
function upper(value: string | null): string {
  return value === null ? "" : value.toUpperCase();
}

// noUncheckedIndexedAccess: rows[0] es string | undefined
function firstLine(rows: string[]): string {
  const first = rows[0];
  return first ?? "(empty)";
}

// strictFunctionTypes: los parámetros se revisan de forma contravariante
type Handler = (value: string) => void;
const wide: (value: unknown) => void = (value) => console.log(value);
const narrowed: Handler = wide;

// noImplicitAny: un parámetro sin tipo es un error, así que anótalo
function total(values: readonly number[]): number {
  return values.reduce((sum, value) => sum + value, 0);
}

console.log(upper(null), firstLine([]), total([1, 2]));
narrowed("ok");

Cómo funciona

  1. strictNullChecks separa null de todos los demás tipos.
  2. noUncheckedIndexedAccess vuelve posiblemente undefined una lectura por índice.
  3. exactOptionalPropertyTypes impide que undefined sustituya a ausente.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
23
Caracteres a escribir
774
Tokens
158
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

Paso 2 de 2 en satisfies y strict; paso 22 de 23 en Tipos y anotaciones.

← Anterior Siguiente →