Effect-typen
Forstå Effect .
Effect-typen er en gratis leksjon i TypeScript Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i TypeScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.
Effekt-typen
Den sentrale typen er Effect<Success, Error, Requirements>. De tre typeparameterne beskriver alt en beregning kan gjøre: hva den produserer, hvordan den kan mislykkes, og hva den trenger.
import { Effect } from "effect";
// Effect<A, E, R>
// A = success value type
// E = error type
// R = required services (dependencies)Suksesskanalen (A)
Den første parameteren er verdien som produseres ved suksess. Effect.succeed oppretter en effekt som alltid gir en verdi, uten feil og uten krav.
import { Effect } from "effect";
const ok = Effect.succeed(42);
// Effect<number, never, never>Feilkanalen (E)
Den andre parameteren er den typede feilen. never betyr at effekten ikke kan mislykkes. En reell feiltype betyr at kallere må ta høyde for feilen.
import { Effect } from "effect";
class NotFound { readonly _tag = "NotFound"; }
const failing = Effect.fail(new NotFound());
// Effect<never, NotFound, never>Kravkanalen (R)
Den tredje parameteren viser hvilke tjenester effekten er avhengig av. never betyr at den er selvstendig; ellers kan den ikke kjøres før disse tjenestene er tilgjengelige.
// Conceptually:
// Effect<User, NotFound, Database>
// produces a User, may fail with NotFound, needs a DatabaseLese en signatur
Du kan lese en effekttype som en setning: «produserer A eller mislykkes med E, gitt R». Denne ene typen erstatter en Promise, implisitte throw-uttrykk og skjulte globale variabler.
never som identitet
never er den nøytrale verdien for E- og R-kanalene: ingen mulige feil og ingen nødvendige avhengigheter. Når du komponerer, samles feil- og kravtypene i unioner.
Opprette effekter fra verdier
Vanlige konstruktører er succeed (ren verdi), fail (typet feil) og sync (pakker inn en synkron bivirkning).
import { Effect } from "effect";
const now = Effect.sync(() => Date.now());
// Effect<number, never, never>Pakke inn asynkront arbeid
Effect.promise og Effect.tryPromise løfter promises til effekter; tryPromise lar deg gjøre en avvisning om til en typet feil i E-kanalen.
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>Typealiaser for kanaler
For tjenester tilbyr Effect Effect.Effect<A, E, R> som det fullstendige navnet. Kanalene er uavhengige: Du kan ha feil uten krav, eller krav uten feil.
Hvorfor tre kanaler
Tre kanaler fanger opp de tre tingene som gjør kode vanskelig å forstå: resultatet, feiltypene og konteksten den kjøres i. Det er synliggjøringen av alle tre i én type som gir Effect sikkerhetsgarantiene sine.
Hvorfor dette er viktig
Å forstå Effect<A, E, R> er nøkkelen til alt annet: Komposisjon kombinerer kanalene, feilhåndtering snevrer inn E, og når du oppgir avhengigheter, tømmes R. Les typen, så vet du nøyaktig hva en beregning gjør.
Kort kontroll
Bekreft forståelsen Deres av Effect-typen.
Oppsummering
Effect<A, E, R> koder inn suksessverdien, den typede feilen og de nødvendige avhengighetene i én type. never er den nøytrale verdien for E og R. Konstruktører som succeed, fail, sync og tryPromise bygger effekter med de riktige kanalene.
Lær deg TypeScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 101
- Leksjoner
- 352
Ofte stilte spørsmål
Er leksjonen «Effect-typen» gratis?
Ja – hele teksten i «Effect-typen» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av TypeScript Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Effect-typen»?
Forstå Effect . Du øver på TypeScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med TypeScript Academy?
Ingen tidligere erfaring er nødvendig. TypeScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Effect-typen»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne TypeScript Academy-leksjonen?
Ja. Alle TypeScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.