Le type Effect
Comprendre Effect .
Le type Effect est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 4 leçons au total.
Le type Effect
Le type central est Effect<Success, Error, Requirements>. Ses trois paramètres de type décrivent tout ce qu’un calcul peut faire : ce qu’il produit, la manière dont il peut échouer et ce dont il a besoin.
import { Effect } from "effect";
// Effect<A, E, R>
// A = success value type
// E = error type
// R = required services (dependencies)Le canal de réussite (A)
Le premier paramètre est la valeur produite en cas de réussite. Effect.succeed crée un effet qui produit toujours une valeur, sans erreur ni exigence.
import { Effect } from "effect";
const ok = Effect.succeed(42);
// Effect<number, never, never>Le canal d’erreur (E)
Le deuxième paramètre est l’erreur typée. never signifie que l’effet ne peut pas échouer. Un type d’erreur réel signifie que les appelants doivent en tenir compte.
import { Effect } from "effect";
class NotFound { readonly _tag = "NotFound"; }
const failing = Effect.fail(new NotFound());
// Effect<never, NotFound, never>Le canal des exigences (R)
Le troisième paramètre répertorie les services dont dépend l’effet. never signifie qu’il est autonome ; sinon, il ne peut pas s’exécuter tant que ces services ne sont pas fournis.
// Conceptually:
// Effect<User, NotFound, Database>
// produces a User, may fail with NotFound, needs a DatabaseLire une signature
Vous pouvez lire un type d’effet comme une phrase : "produit A ou échoue avec E, étant donné R". Ce type unique remplace une Promise, les throw implicites et les éléments globaux cachés.
never comme élément neutre
never est la valeur neutre des canaux E et R : aucune erreur possible et aucune dépendance requise. Au fil de la composition, les types d’erreur et d’exigences s’accumulent sous forme d’unions.
Créer des effets à partir de valeurs
Constructeurs courants : succeed (valeur pure), fail (erreur typée) et sync (encapsule un effet de bord synchrone).
import { Effect } from "effect";
const now = Effect.sync(() => Date.now());
// Effect<number, never, never>Encapsuler un traitement asynchrone
Effect.promise et Effect.tryPromise transforment des promesses en effets ; tryPromise vous permet de convertir un rejet en erreur typée dans le 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 type pour les canaux
Pour les services, Effect fournit Effect.Effect<A, E, R> comme nom complet. Les canaux sont indépendants : vous pouvez avoir des erreurs sans exigences, ou des exigences sans erreurs.
Pourquoi trois canaux
Les trois canaux capturent les trois éléments qui rendent le code difficile à comprendre : le résultat, les modes d’échec et le contexte dans lequel il s’exécute. Faire apparaître ces trois éléments dans un seul type est ce qui confère à Effect ses garanties de sécurité.
Pourquoi est-ce important
Comprendre Effect<A, E, R> est la clé de tout le reste : la composition combine ces canaux, la gestion des erreurs restreint E et la fourniture des dépendances élimine R. Lisez le type et vous saurez exactement ce que fait un calcul.
Vérification rapide
Vérifiez votre compréhension du type Effect.
Récapitulatif
Effect<A, E, R> encode dans un seul type la valeur de réussite, l’erreur typée et les dépendances requises. never est la valeur neutre des canaux E et R. Des constructeurs comme succeed, fail, sync et tryPromise créent des effets avec les canaux appropriés.
Questions Fréquemment Posées
La leçon « Le type Effect » est-elle gratuite ?
Oui — le texte complet de « Le type Effect » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Le type Effect » ?
Comprendre Effect . Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer TypeScript Academy ?
Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Le type Effect » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?
Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pourquoi les systèmes d’effets sont importants
- Le type Effect
- Composer des effets
- Canaux d’erreur et dépendances