0Pricing
TypeScript Academy · Lección

Tipado de patrones de cadenas (parámetros de ruta y nombres de eventos)

Restrinja cadenas con tipos de literales de plantilla: patrones de parámetros de ruta, espacios de nombres de eventos y builders seguros.

Tipado de patrones de cadenas (parámetros de ruta y nombres de eventos) es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 3 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: Modele formatos de cadenas en los tipos. Con los tipos de literales de plantilla puede imponer patrones como "/users/:id" o "user:created" sin renunciar a una excelente experiencia de desarrollo.

  • Restrinja por prefijo o sufijo
  • Extraiga partes con infer
  • Construya ayudantes seguros

Parámetros de ruta

Defina una plantilla de ruta sencilla y extraiga el nombre del parámetro con infer; use never en los casos que no cumplan la regla.

type Route = `/${string}`

type RouteWithParam = `/${string}/:${string}`

type ParamOf<R extends string> = R extends `${string}/:${infer P}` ? P : never

// examples
type A = ParamOf<"/users/:id">      // "id"
type B = ParamOf<"/posts/:slug">    // "slug"

Ayudante seguro para rutas

Constructor seguro: la función auxiliar acepta plantillas que comienzan por "/"; las demás se rechazan durante la compilación.

type Path<R extends string> = R extends `/${string}` ? R : never

function route<R extends Path<R>>(r: R) { return r }

const ok = route("/users/:id")    // ok
// const bad = route("users")      // error: must start with "/"

Espacios de nombres de eventos

Limite los prefijos (por ejemplo, user: y order:) y bloquee los nombres de campo no válidos mediante tipos.

type EventName = `user:${string}` | `order:${string}`

function on<E extends EventName>(name: E, cb: (data: unknown) => void) {
  // ... register listener
}

on("user:created", d => {})     // ok
// on("payment:done", d => {})  // error: not an EventName

Dividir un evento

Extraiga las dos secciones con infer y conviértalas en campos tipados; los formatos no válidos no podrán producirse.

type SplitEvent<E extends string> = E extends `${infer Scope}:${infer Action}` ? { scope: Scope; action: Action } : never

type S = SplitEvent<"user:created">   // { scope: "user"; action: "created" }

type Bad = SplitEvent<"oops">          // never

Consejos

Consejos:

Mantenga las restricciones al mínimo; las plantillas demasiado estrictas obligan a refactorizar.

Combine las reglas en un solo lugar mediante funciones Builder.

No olvide asignar la cadena subyacente a datos unknown y validarla en tiempo de ejecución.

Comprobación de espacios de nombres

Comprobación rápida: ¿Qué patrón restringe los nombres de eventos a dos espacios de nombres?

Repaso

Repaso: Restrinja cadenas basadas en plantillas con tipos de literales de plantilla; extraiga partes con infer; cree funciones auxiliares seguras.

Preguntas frecuentes

¿La lección «Tipado de patrones de cadenas (parámetros de ruta y nombres de eventos)» es gratis?

Sí — el texto completo de «Tipado de patrones de cadenas (parámetros de ruta y nombres de eventos)» 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 «Tipado de patrones de cadenas (parámetros de ruta y nombres de eventos)»?

Restrinja cadenas con tipos de literales de plantilla: patrones de parámetros de ruta, espacios de nombres de eventos y builders seguros. 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 3 de 3.

¿Cuánto tiempo toma la lección «Tipado de patrones de cadenas (parámetros de ruta y nombres de eventos)»?

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. Tipos mapeados con +/-readonly y +/-?
  2. Remapeo de claves y tipos de literales de plantilla
  3. Tipado de patrones de cadenas (parámetros de ruta y nombres de eventos)
← Volver a TypeScript Academy