Il tipo Effect
Comprenda Effect .
Il tipo Effect è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.
Il tipo Effect
Il tipo centrale è Effect<Success, Error, Requirements>. I suoi tre parametri di tipo descrivono tutto ciò che un calcolo può fare: che cosa produce, come può fallire e di che cosa ha bisogno.
import { Effect } from "effect";
// Effect<A, E, R>
// A = success value type
// E = error type
// R = required services (dependencies)Il canale del risultato (A)
Il primo parametro è il valore prodotto in caso di successo. Effect.succeed crea un effetto che restituisce sempre un valore, senza errori né requisiti.
import { Effect } from "effect";
const ok = Effect.succeed(42);
// Effect<number, never, never>Il canale degli errori (E)
Il secondo parametro è l'errore tipizzato. never indica che l'effetto non può fallire. Un tipo di errore reale significa che chi effettua la chiamata deve tenerne conto.
import { Effect } from "effect";
class NotFound { readonly _tag = "NotFound"; }
const failing = Effect.fail(new NotFound());
// Effect<never, NotFound, never>Il canale dei requisiti (R)
Il terzo parametro elenca i servizi da cui dipende l'effetto. never indica che è autonomo; altrimenti non può essere eseguito finché tali servizi non vengono forniti.
// Conceptually:
// Effect<User, NotFound, Database>
// produces a User, may fail with NotFound, needs a DatabaseLeggere una firma
Può leggere un tipo Effect come una frase: "produce A oppure fallisce con E, dato R". Questo singolo tipo sostituisce una Promise, gli eventuali throw impliciti e le variabili globali nascoste.
never come identità
never è il valore neutro per i canali E e R: nessun errore possibile e nessuna dipendenza richiesta. Durante la composizione, i tipi degli errori e dei requisiti si accumulano come unioni.
Creare effetti dai valori
Costruttori comuni: succeed (valore puro), fail (errore tipizzato) e sync (incapsula un effetto collaterale sincrono).
import { Effect } from "effect";
const now = Effect.sync(() => Date.now());
// Effect<number, never, never>Incapsulare il lavoro asincrono
Effect.promise e Effect.tryPromise trasformano le promise in effetti; tryPromise permette di convertire un rifiuto in un errore tipizzato nel canale 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 di tipo per i canali
Per i servizi, Effect fornisce Effect.Effect<A, E, R> come nome completo. I canali sono indipendenti: può avere errori senza requisiti oppure requisiti senza errori.
Perché tre canali
I tre canali rappresentano i tre aspetti che rendono difficile comprendere il codice: il risultato, le modalità di fallimento e il contesto in cui viene eseguito. Esporli tutti in un unico tipo è ciò che conferisce a Effect le sue garanzie di sicurezza.
Perché è importante
Comprendere Effect<A, E, R> è fondamentale per tutto il resto: la composizione combina questi canali, la gestione degli errori restringe E e la fornitura delle dipendenze svuota R. Leggendo il tipo, sa esattamente che cosa fa un calcolo.
Verifica rapida
Confermi la sua comprensione del tipo Effect.
Riepilogo
Effect<A, E, R> codifica in un unico tipo il valore di successo, l'errore tipizzato e le dipendenze richieste. never è il valore neutro per E e R. Costruttori come succeed, fail, sync e tryPromise creano effetti con i canali appropriati.
Domande Frequenti
La lezione «Il tipo Effect» è gratuita?
Sì — il testo completo di «Il tipo Effect» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.
Cosa imparerò in «Il tipo Effect»?
Comprenda Effect . Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare TypeScript Academy?
Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Il tipo Effect»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?
Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché i sistemi degli effetti sono importanti
- Il tipo Effect
- Comporre gli effetti
- Canali degli errori e dipendenze