Currificación y aplicación parcial
Transforme funciones con varios argumentos en formas currificadas.
Currificación y aplicación parcial es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 2 de 4. 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 4 lecciones en total.
¿Qué es el currificado?
El currificado transforma una función con varios argumentos en una cadena de funciones con un solo argumento. En lugar de f(a, b), se llama a f(a)(b).
El ejemplo clásico
Aquí, add recibe un número y devuelve una función que espera el siguiente. TypeScript infiere automáticamente los tipos de las funciones anidadas.
const add = (a: number) => (b: number) => a + b;
console.log(add(2)(3)); // 5Tipado de una función currificada
El tipo explícito muestra claramente la cadena: una función que devuelve otra función. Cada flecha corresponde a un argumento.
type Add = (a: number) => (b: number) => number;
const add: Add = a => b => a + b;
console.log(add(10)(5)); // 15Aplicación parcial
La aplicación parcial fija algunos argumentos ahora y proporciona el resto más adelante. Con una función currificada, basta con llamarla dando menos pasos.
const add = (a: number) => (b: number) => a + b;
const add10 = add(10); // partially applied
console.log(add10(1), add10(2)); // 11 12Por qué es útil la aplicación parcial
Puede crear funciones especializadas a partir de funciones generales. add10 es una herramienta reutilizable y con nombre, derivada de la función genérica add, que mejora la legibilidad y la reutilización.
Currificado de tres argumentos
El patrón se amplía a cualquier aridad. Cada nivel captura un argumento en una clausura hasta que se produce el valor final.
const clamp = (min: number) => (max: number) => (x: number) =>
Math.min(Math.max(x, min), max);
const toByte = clamp(0)(255);
console.log(toByte(300), toByte(-5)); // 255 0Ideal para map y filter
Las funciones currificadas encajan perfectamente en los métodos de matrices porque map espera una función con un argumento. La aplicación parcial produce exactamente ese tipo de función.
const mul = (a: number) => (b: number) => a * b;
const triple = mul(3);
console.log([1, 2, 3].map(triple)); // [3, 6, 9]Un helper genérico para currificar
Puede escribir un helper tipado que currifique una función de dos argumentos. Los genéricos mantienen la precisión de los tipos de los parámetros y del valor de retorno.
function curry2<A, B, R>(f: (a: A, b: B) => R) {
return (a: A) => (b: B) => f(a, b);
}
const join = curry2((a: string, b: string) => a + b);
console.log(join("foo")("bar")); // foobarLas clausuras capturan los argumentos
El currificado funciona porque cada función devuelta forma una clausura sobre los argumentos anteriores. Esos valores permanecen disponibles hasta que la llamada final los utiliza.
const greet = (greeting: string) => (name: string) =>
greeting + ", " + name;
const hi = greet("Hi");
console.log(hi("Sam")); // Hi, SamCuándo no currificar
Currificar todas las funciones puede perjudicar la legibilidad. Recurra al currificado cuando la aplicación parcial sea realmente útil, por ejemplo, al configurar helpers reutilizables o componer pipelines.
Currificado frente a argumentos predeterminados
Los parámetros predeterminados proporcionan valores por defecto, pero no una aplicación por etapas. El currificado ofrece una aplicación parcial auténtica y devuelve una función real que puede pasar a otras partes del código y reutilizar.
Comprobación rápida
Comprobación rápida de esta lección.
Resumen
La currificación transforma f(a, b) en f(a)(b), una cadena de funciones de un argumento con tipos expresados como flechas anidadas. La aplicación parcial fija después los argumentos iniciales para crear funciones especializadas reutilizables mediante clausuras.
Preguntas frecuentes
¿La lección «Currificación y aplicación parcial» es gratis?
Sí — el texto completo de «Currificación y aplicación parcial» 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 4 lecciones en total.
¿Qué aprenderé en «Currificación y aplicación parcial»?
Transforme funciones con varios argumentos en formas currificadas. 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 4.
¿Cuánto tiempo toma la lección «Currificación y aplicación parcial»?
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
- Funciones puras e inmutabilidad
- Currificación y aplicación parcial
- Composición de funciones con tipos
- Utilidades pipe y flow tipadas