0Pricing
TypeScript Academy · Pelajaran

Konfigurasi yang Tervalidasi Skema

Validasi konfigurasi saat mulai dengan skema.

Konfigurasi yang Tervalidasi Skema 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.

Memvalidasi Config saat Dimulai

Pembantu penguraian manual dapat digunakan, tetapi sebuah skema mendeklarasikan seluruh bentuk dan aturan di satu tempat serta memvalidasi semuanya saat dimulai, sehingga gagal lebih awal sebelum aplikasi melayani lalu lintas.

Arti Gagal Lebih Awal

Gagal lebih awal berarti proses segera keluar dengan pesan yang jelas ketika konfigurasi salah, bukan mengalami galat di kemudian hari dalam jalur kode yang tidak jelas saat menangani permintaan.

Skema dengan Zod

Pustaka seperti zod memungkinkan Anda mendeskripsikan config secara deklaratif. Setiap bidang menyatakan tipe dan batasannya; validasi menghasilkan objek yang sepenuhnya bertipe.

import { z } from "zod";
const EnvSchema = z.object({
  PORT: z.coerce.number().int().positive(),
  NODE_ENV: z.enum(["development", "production"]),
  DATABASE_URL: z.string().url(),
});

Konversi Otomatis Bawaan

Skema dapat mengonversi string ke tipe yang tepat. z.coerce.number() mengubah "8081" menjadi 8081, sehingga string env mentah menjadi angka yang sebenarnya dengan aman.

// "8081" -> 8081 via z.coerce.number()

Mengurai dan Gagal Lebih Awal

Memanggil parse akan memvalidasi semuanya. Jika ada yang tidak valid, zod melempar galat terperinci yang dapat Anda catat dan gunakan untuk keluar, sehingga proses dimulai segera dihentikan.

function loadConfig() {
  const result = EnvSchema.safeParse(process.env);
  if (!result.success) {
    console.error(result.error.format());
    process.exit(1);
  }
  return result.data;
}

Menyimpulkan Tipe

Manfaat besarnya adalah tipe yang telah divalidasi diturunkan dari skema dengan z.infer. Skema menjadi satu sumber kebenaran untuk pemeriksaan saat berjalan maupun tipe saat kompilasi.

type Env = z.infer<typeof EnvSchema>;
// { PORT: number; NODE_ENV: "development" | "production"; DATABASE_URL: string }

Galat Deskriptif

Validator skema melaporkan bidang mana yang gagal dan alasannya secara tepat, misalnya "PORT: expected positive number". Pesan yang jelas membuat kesalahan konfigurasi mudah didiagnosis.

// e.g. { PORT: { _errors: ["Expected number, received nan"] } }

Bidang Opsional dan Nilai Bawaan

Skema menyatakan sifat opsional dan nilai bawaan secara langsung, menghilangkan logika nilai cadangan yang ditulis manual dan menjaga semua aturan dalam satu deklarasi.

const Schema = z.object({
  LOG_LEVEL: z.enum(["info", "debug"]).default("info"),
  TIMEOUT_MS: z.coerce.number().optional(),
});

Validasi Sekali, Gunakan di Mana Saja

Jalankan validasi satu kali saat proses dimulai dan ekspor objek bertipe yang dihasilkan. Kode selanjutnya dapat mempercayai bahwa config tersedia dan terbentuk dengan benar.

export const config = loadConfig();

Di Luar Env: Berkas dan Argumen

Skema yang sama dapat memvalidasi config dari berkas JSON atau sumber yang digabungkan, bukan hanya process.env. Langkah validasi tidak bergantung pada asal nilai.

Mengapa Skema Mengungguli Pemeriksaan Serampangan

Skema menyatukan validasi dan pengetikan, menghasilkan galat kaya yang konsisten, mendukung konversi dan nilai bawaan, serta gagal lebih awal, menggantikan pemeriksaan manual if yang tersebar dengan satu deklarasi.

Pemeriksaan Singkat

Pemeriksaan singkat tentang pelajaran ini.

Ringkasan

Skema config (misalnya zod) mendeklarasikan tipe, batasan, konversi, dan nilai bawaan di satu tempat, memvalidasi saat proses dimulai agar gagal lebih awal dengan galat deskriptif, serta memungkinkan Anda menyimpulkan config bertipe dengan z.infer dari satu sumber kebenaran tersebut.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Konfigurasi yang Tervalidasi Skema” gratis?

Ya — teks lengkap “Konfigurasi yang Tervalidasi Skema” 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 “Konfigurasi yang Tervalidasi Skema”?

Validasi konfigurasi saat mulai dengan skema. 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 “Konfigurasi yang Tervalidasi Skema” 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.

Semua pelajaran dalam kursus ini

  1. Menentukan Jenis Variabel Lingkungan
  2. Konfigurasi yang Tervalidasi Skema
  3. Pelapisan Konfigurasi dan Nilai Bawaan
  4. Rahasia dan Keamanan Jenis
← Kembali ke TypeScript Academy