Jenis Effect
Pahami Effect .
Jenis Effect adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.
Tipe Efek
Tipe utamanya adalah Effect<Success, Error, Requirements>. Ketiga parameter tipenya menjelaskan segala hal yang dapat dilakukan oleh suatu komputasi: apa yang dihasilkannya, bagaimana komputasi tersebut dapat gagal, dan apa yang dibutuhkannya.
import { Effect } from "effect";
// Effect<A, E, R>
// A = success value type
// E = error type
// R = required services (dependencies)Saluran Keberhasilan (A)
Parameter pertama adalah nilai yang dihasilkan saat berhasil. Effect.succeed membuat efek yang selalu menghasilkan nilai tanpa galat dan tanpa persyaratan.
import { Effect } from "effect";
const ok = Effect.succeed(42);
// Effect<number, never, never>Saluran Galat (E)
Parameter kedua adalah galat bertipe. never berarti efek tersebut tidak dapat gagal. Tipe galat nyata berarti pemanggil harus memperhitungkannya.
import { Effect } from "effect";
class NotFound { readonly _tag = "NotFound"; }
const failing = Effect.fail(new NotFound());
// Effect<never, NotFound, never>Saluran Persyaratan (R)
Parameter ketiga mencantumkan layanan yang menjadi dependensi efek. never berarti efek tersebut berdiri sendiri; jika tidak, efek tersebut tidak dapat dijalankan sampai layanan itu disediakan.
// Conceptually:
// Effect<User, NotFound, Database>
// produces a User, may fail with NotFound, needs a DatabaseMembaca Tanda Tangan
Anda dapat membaca tipe efek seperti sebuah kalimat: "menghasilkan A, atau gagal dengan E, berdasarkan R". Satu tipe ini menggantikan Promise, lemparan galat implisit, dan variabel global tersembunyi.
never sebagai Identitas
never adalah nilai netral untuk saluran E dan R: tidak ada galat yang mungkin terjadi dan tidak ada dependensi yang diperlukan. Saat Anda mengomposisikannya, tipe galat dan persyaratan terakumulasi sebagai gabungan.
Membuat Efek dari Nilai
Konstruktor umum: succeed (nilai murni), fail (galat bertipe), dan sync (membungkus efek samping sinkron).
import { Effect } from "effect";
const now = Effect.sync(() => Date.now());
// Effect<number, never, never>Membungkus Pekerjaan Asinkron
Effect.promise dan Effect.tryPromise mengangkat janji ke dalam efek; tryPromise memungkinkan Anda memetakan penolakan menjadi galat bertipe dalam saluran 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 Tipe untuk Saluran
Untuk layanan, Effect menyediakan Effect.Effect<A, E, R> sebagai nama lengkapnya. Saluran-saluran tersebut tidak saling bergantung: Anda dapat memiliki galat tanpa persyaratan, atau persyaratan tanpa galat.
Mengapa Ada Tiga Saluran
Tiga saluran menangkap tiga hal yang membuat kode sulit dipahami: hasilnya, cara kegagalannya, dan konteks tempat kode tersebut berjalan. Menampilkan ketiganya dalam satu tipe memberikan jaminan keamanan pada Effect.
Mengapa Ini Penting
Memahami Effect<A, E, R> adalah kunci untuk semua hal lainnya: komposisi menggabungkan saluran-saluran ini, penanganan galat mempersempit E, dan penyediaan dependensi mengosongkan R. Bacalah tipenya, dan Anda akan mengetahui dengan tepat apa yang dilakukan suatu komputasi.
Pemeriksaan Singkat
Pastikan pemahaman Anda tentang tipe Effect.
Ringkasan
Effect<A, E, R> menyandikan nilai keberhasilan, galat bertipe, dan dependensi yang diperlukan dalam satu tipe. never adalah nilai netral untuk E dan R. Konstruktor seperti succeed, fail, sync, dan tryPromise membangun efek dengan saluran yang sesuai.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Jenis Effect” gratis?
Ya — teks lengkap “Jenis Effect” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Jenis Effect”?
Pahami Effect . Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai TypeScript Academy?
Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Jenis Effect” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?
Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.