0Pricing
TypeScript Academy · Lekcja

Typ Effect

Zrozum Effect

Typ Effect to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Typ efektu

Centralnym typem jest Effect<Success, Error, Requirements>. Jego trzy parametry typu opisują wszystko, co może zrobić obliczenie: co zwraca, w jaki sposób może się nie powieść i czego potrzebuje.

import { Effect } from "effect";
// Effect<A, E, R>
//   A = success value type
//   E = error type
//   R = required services (dependencies)

Kanał wyniku (A)

Pierwszy parametr to wartość zwracana w przypadku powodzenia. Effect.succeed tworzy efekt, który zawsze zwraca wartość, bez błędów i wymagań.

import { Effect } from "effect";

const ok = Effect.succeed(42);
// Effect<number, never, never>

Kanał błędu (E)

Drugi parametr to typ błędu. never oznacza, że efekt nie może się nie powieść. Rzeczywisty typ błędu oznacza, że wywołujący musi go uwzględnić.

import { Effect } from "effect";

class NotFound { readonly _tag = "NotFound"; }
const failing = Effect.fail(new NotFound());
// Effect<never, NotFound, never>

Kanał wymagań (R)

Trzeci parametr zawiera listę usług, od których zależy efekt. never oznacza, że efekt jest samowystarczalny; w przeciwnym razie nie można go uruchomić, dopóki wymagane usługi nie zostaną dostarczone.

// Conceptually:
// Effect<User, NotFound, Database>
// produces a User, may fail with NotFound, needs a Database

Odczytywanie sygnatury

Typ efektu można odczytać jak zdanie: „zwraca A albo kończy się błędem E, przy założeniu R”. Ten pojedynczy typ zastępuje obietnicę, niejawne wyjątki i ukryte zmienne globalne.

never jako element neutralny

never jest neutralną wartością kanałów E i R: oznacza brak możliwego błędu i brak wymaganych zależności. Podczas składania typy błędów i wymagań są gromadzone w postaci sum typów.

Tworzenie efektów z wartości

Typowe konstruktory to: succeed (czysta wartość), fail (typowany błąd) oraz sync (opakowanie synchronicznego skutku ubocznego).

import { Effect } from "effect";

const now = Effect.sync(() => Date.now());
// Effect<number, never, never>

Opakowywanie pracy asynchronicznej

Effect.promise i Effect.tryPromise przekształcają obietnice w efekty; tryPromise pozwala zamienić odrzucenie obietnicy na typowany błąd w kanale 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>

Aliasy typów kanałów

W przypadku usług Effect udostępnia Effect.Effect<A, E, R> jako pełną nazwę. Kanały są niezależne: można mieć błędy bez wymagań albo wymagania bez błędów.

Dlaczego trzy kanały

Trzy kanały opisują trzy elementy, które utrudniają rozumowanie o kodzie: wynik, możliwe niepowodzenia i kontekst, w którym kod jest uruchamiany. Ujęcie wszystkich trzech w jednym typie zapewnia bibliotece Effect gwarancje bezpieczeństwa.

Dlaczego ma to znaczenie

Zrozumienie Effect<A, E, R> jest kluczem do wszystkiego, co następuje później: składanie łączy te kanały, obsługa błędów zawęża E, a dostarczanie zależności usuwa R. Odczytując typ, można dokładnie określić, co robi obliczenie.

Szybkie sprawdzenie

Upewnij się, że rozumiesz typ Effect.

Podsumowanie

Effect<A, E, R> koduje w jednym typie wartość wyniku, typowany błąd i wymagane zależności. never jest neutralną wartością kanałów E i R. Konstruktory, takie jak succeed, fail, sync i tryPromise, tworzą efekty z odpowiednimi kanałami.

Często zadawane pytania

Czy lekcja „Typ Effect” jest bezpłatna?

Tak — pełny tekst „Typ Effect” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Typ Effect”?

Zrozum Effect Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?

Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Typ Effect”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?

Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Dlaczego systemy efektów mają znaczenie
  2. Typ Effect
  3. Komponowanie efektów
  4. Kanały błędów i zależności
← Powrót do TypeScript Academy