0Pricing
TypeScript Academy · Lektion

Der Effect-Typ

Verstehen Sie Effect .

Der Effect-Typ ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des TypeScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.

Der Effect-Typ

Der zentrale Typ ist Effect<Success, Error, Requirements>. Seine drei Typparameter beschreiben alles, was eine Berechnung tun kann: was sie erzeugt, wie sie fehlschlagen kann und was sie benötigt.

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

Der Erfolgskanal (A)

Der erste Parameter ist der Wert, der bei Erfolg erzeugt wird. Effect.succeed erstellt einen Effekt, der immer einen Wert liefert, ohne Fehler und ohne Abhängigkeiten.

import { Effect } from "effect";

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

Der Fehlerkanal (E)

Der zweite Parameter ist der typisierte Fehler. never bedeutet, dass der Effekt nicht fehlschlagen kann. Ein echter Fehlertyp bedeutet, dass Aufrufer ihn berücksichtigen müssen.

import { Effect } from "effect";

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

Der Abhängigkeitskanal (R)

Der dritte Parameter führt die Dienste auf, von denen der Effekt abhängt. never bedeutet, dass er eigenständig ist. Andernfalls kann er erst ausgeführt werden, wenn diese Dienste bereitgestellt wurden.

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

Eine Signatur lesen

Sie können einen Effekttyp wie einen Satz lesen: "liefert A oder schlägt mit E fehl, unter Voraussetzung von R". Dieser eine Typ ersetzt ein Promise, implizite throws und verborgene globale Abhängigkeiten.

never als Identität

never ist der neutrale Wert für die E- und R-Kanäle: kein möglicher Fehler und keine erforderliche Abhängigkeit. Beim Komponieren sammeln sich Fehler- und Abhängigkeitstypen als Vereinigungen an.

Effekte aus Werten erstellen

Übliche Konstruktoren sind: succeed (reiner Wert), fail (typisierter Fehler) und sync (verpackt einen synchronen Seiteneffekt).

import { Effect } from "effect";

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

Asynchrone Arbeit verpacken

Effect.promise und Effect.tryPromise heben Promises in Effekte an; mit tryPromise können Sie eine Ablehnung in einen typisierten Fehler im E-Kanal umwandeln.

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>

Typaliase für Kanäle

Für Dienste stellt Effect Effect.Effect<A, E, R> als vollständige Bezeichnung bereit. Die Kanäle sind unabhängig: Sie können Fehler ohne Abhängigkeiten oder Abhängigkeiten ohne Fehler haben.

Warum drei Kanäle

Drei Kanäle erfassen die drei Dinge, die das Verständnis von Code erschweren: das Ergebnis, die Fehlerfälle und den Kontext, in dem der Code ausgeführt wird. Dass alle drei in einem Typ sichtbar sind, verleiht Effect seine Sicherheitsgarantien.

Warum das wichtig ist

Das Verständnis von Effect<A, E, R> ist der Schlüssel zu allem Weiteren: Bei der Komposition werden diese Kanäle kombiniert, die Fehlerbehandlung schränkt E ein und das Bereitstellen von Abhängigkeiten leert R. Wenn Sie den Typ lesen, wissen Sie genau, was eine Berechnung tut.

Kurztest

Überprüfen Sie Ihr Verständnis des Effect-Typs.

Zusammenfassung

Effect<A, E, R> kodiert den Erfolgswert, den typisierten Fehler und die erforderlichen Abhängigkeiten in einem Typ. never ist der neutrale Wert für E und R. Konstruktoren wie succeed, fail, sync und tryPromise erstellen Effekte mit den passenden Kanälen.

Häufig gestellte Fragen

Ist die Lektion „Der Effect-Typ“ kostenlos?

Ja — der vollständige Text von „Der Effect-Typ“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des TypeScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Der Effect-Typ“?

Verstehen Sie Effect . Du übst TypeScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um TypeScript Academy zu starten?

Keine Vorkenntnisse erforderlich. TypeScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Der Effect-Typ“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser TypeScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede TypeScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum Effektsysteme wichtig sind
  2. Der Effect-Typ
  3. Effekte komponieren
  4. Fehlerkanäle und Abhängigkeiten
← Zurück zu TypeScript Academy