El tipo Effect
Comprenda Effect .
El tipo Effect 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.
El tipo Effect
El tipo central es Effect<Success, Error, Requirements>. Sus tres parámetros de tipo describen todo lo que puede hacer un cálculo: qué produce, cómo puede fallar y qué necesita.
import { Effect } from "effect";
// Effect<A, E, R>
// A = success value type
// E = error type
// R = required services (dependencies)El canal de éxito (A)
El primer parámetro es el valor producido cuando la operación tiene éxito. Effect.succeed crea un efecto que siempre produce un valor, sin errores ni requisitos.
import { Effect } from "effect";
const ok = Effect.succeed(42);
// Effect<number, never, never>El canal de errores (E)
El segundo parámetro es el error tipado. never significa que el efecto no puede fallar. Un tipo de error real significa que los llamadores deben tenerlo en cuenta.
import { Effect } from "effect";
class NotFound { readonly _tag = "NotFound"; }
const failing = Effect.fail(new NotFound());
// Effect<never, NotFound, never>El canal de requisitos (R)
El tercer parámetro enumera los servicios de los que depende el efecto. never significa que es autónomo; de lo contrario, no se puede ejecutar hasta que se proporcionen esos servicios.
// Conceptually:
// Effect<User, NotFound, Database>
// produces a User, may fail with NotFound, needs a DatabaseLeer una firma
Puede leer un tipo de efecto como una oración: «produce A o falla con E, dado R». Este único tipo sustituye a una Promise, las excepciones implícitas y los valores globales ocultos.
never como identidad
never es el valor neutro de los canales E y R: no hay ningún error posible ni ninguna dependencia necesaria. Al componer, los tipos de errores y requisitos se acumulan como uniones.
Crear efectos a partir de valores
Constructores habituales: succeed (valor puro), fail (error tipado) y sync (envuelve un efecto secundario síncrono).
import { Effect } from "effect";
const now = Effect.sync(() => Date.now());
// Effect<number, never, never>Envolver trabajo asíncrono
Effect.promise y Effect.tryPromise convierten promesas en efectos; tryPromise permite transformar un rechazo en un error tipado del canal E.
import { Effect } from "effect";
const fetchUser = Effect.tryPromise({
try: () => fetch("/user").then((r) => r.json()),
catch: (e) => new Error("fetch failed: " + String(e)),
});
// Effect<any, Error, never>Alias de tipo para los canales
Para los servicios, Effect proporciona Effect.Effect<A, E, R> como nombre completo. Los canales son independientes: puede tener errores sin requisitos o requisitos sin errores.
Por qué hay tres canales
Los tres canales representan las tres cosas que dificultan razonar sobre el código: el resultado, las situaciones de fallo y el contexto en el que se ejecuta. Mostrar las tres en un solo tipo es lo que proporciona a Effect sus garantías de seguridad.
Por qué es importante
Comprender Effect<A, E, R> es la clave para todo lo demás: la composición combina estos canales, la gestión de errores acota E y la provisión de dependencias elimina R. Lea el tipo y sabrá exactamente qué hace un cálculo.
Comprobación rápida
Confirme su comprensión del tipo Effect.
Resumen
Effect<A, E, R> codifica en un solo tipo el valor de éxito, el error tipado y las dependencias necesarias. never es el valor neutro de E y R. Constructores como succeed, fail, sync y tryPromise crean efectos con los canales correspondientes.
Preguntas frecuentes
¿La lección «El tipo Effect» es gratis?
Sí — el texto completo de «El tipo Effect» 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 «El tipo Effect»?
Comprenda Effect . 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 «El tipo Effect»?
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
- Por qué importan los sistemas de efectos
- El tipo Effect
- Composición de efectos
- Canales de error y dependencias