0Pricing
TypeScript Academy · Lección

Funciones predicado y operador satisfies

Escriba protectores de tipo personalizados con tipos de retorno predicado y valide objetos con el operador satisfies sin ampliar sus tipos.

Funciones predicado y operador satisfies es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 3 lecciones en total.

Introducción

Objetivo: Cree funciones predicado que estrechen tipos (por ejemplo, value is T) y utilice satisfies para comprobar formas sin ampliar los tipos.

  • Guardas personalizadas = comprobaciones reutilizables en tiempo de ejecución
  • satisfies = comprobación de forma en tiempo de compilación; conserva los literales

Conceptos básicos de los predicados

Una función predicado devuelve x is Type. Después de la comprobación, la variable queda estrechada en ese ámbito.

function isNumber(x: unknown): x is number {
  return typeof x === "number"
}

function demo(a: unknown) {
  if (isNumber(a)) {
    // inside: a is number
    return a.toFixed(2)
  }
  return "not a number"
}

Guarda de forma

La guarda comprueba la forma de los objetos; si la comprobación se supera, el valor se trata como User y puede utilizarse de forma segura.

type User = { id: number; name: string }

function isUser(v: unknown): v is User {
  return typeof v === "object" && v !== null &&
    "id" in v && "name" in v &&
    typeof (v as any).id === "number" &&
    typeof (v as any).name === "string"
}

function printUser(u: unknown) {
  if (isUser(u)) {
    console.log(u.name.toUpperCase())
  } else {
    console.log("invalid user")
  }
}

A través de límites

Las guardas garantizan un transporte seguro a través de los límites de las funciones: unknown en el exterior y User controlado en el interior.

function fetchAndPrint(json: string) {
  const value: unknown = JSON.parse(json)
  if (isUser(value)) {
    // value narrowed to User
    console.log(`User #${value.id}: ${value.name}`)
  } else {
    console.log("Bad payload")
  }
}

satisfies (configuración)

satisfies comprueba que la expresión cumple con Confige, pero conserva el tipo literal de la variable.

type Config = { mode: "dev" | "prod"; retries: number }

const cfg = {
  mode: "prod",
  retries: 3,
  // timeout: 1000, // Error with satisfies if not in type
} satisfies Config

// cfg.mode is still the literal "prod" (not widened to string)
// and adding unknown keys raises an error at compile-time

satisfies (matrices)

En las matrices, las formas de los elementos se validan con as const satisfies; los valores literales se conservan y se mejora el autocompletado.

type Route = { path: `/${string}`; method: "GET" | "POST" }

const routes = [
  { path: "/", method: "GET" },
  { path: "/login", method: "POST" }
] as const satisfies ReadonlyArray<Route>

// each element is checked against Route, literals preserved for DX

Comprobación de satisfies

Comprobación rápida: ¿Qué hace realmente satisfies?

Repaso

Repaso: Los predicados (x is T) actúan como contratos; satisfies confirma la forma y conserva los tipos literales. Utilice ambos conjuntamente.

Preguntas frecuentes

¿La lección «Funciones predicado y operador satisfies» es gratis?

Sí — el texto completo de «Funciones predicado y operador satisfies» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 3 lecciones en total.

¿Qué aprenderé en «Funciones predicado y operador satisfies»?

Escriba protectores de tipo personalizados con tipos de retorno predicado y valide objetos con el operador satisfies sin ampliar sus tipos. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar TypeScript Academy?

No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.

¿Cuánto tiempo toma la lección «Funciones predicado y operador satisfies»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?

Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Switches exhaustivos y comprobaciones con never
  2. Funciones predicado y operador satisfies
  3. Refinamiento de uniones entre límites de funciones
← Volver a TypeScript Academy