Penyiapan Proyek dengan Bun
Pada modul-modul awal, kita akan menggunakan Bun sebagai runtime sekaligus package manager. Bun cukup cepat, mendukung TypeScript secara langsung tanpa konfigurasi tambahan, dan memerlukan setup yang minimal. Apabila Bun belum terpasang di komputer kamu, silakan pasang terlebih dahulu menggunakan perintah berikut:
curl -fsSL https://bun.sh/install | bashUntuk pengguna Windows, ikuti instruksi pada halaman bun.sh/docs/installation. Setelah selesai memasang, periksa versinya:
bun --versionMembuat Proyek Baru
Buat folder baru untuk proyek, kemudian inisialisasi proyek Bun:
mkdir belajar-zod
cd belajar-zod
bun init -yBun akan membuatkan beberapa fail, di antaranya package.json, tsconfig.json, dan index.ts. Buka folder ini di editor yang kamu gunakan.
Memasang Zod
Pasang Zod sebagai dependency:
bun add zodApabila kita memeriksa package.json, Zod sudah terdaftar pada dependencies:
{
"name": "belajar-zod",
"dependencies": {
"zod": "^4.3.6"
}
}Menjalankan Tes
Buka fail index.ts, lalu tulis kode singkat untuk memastikan Zod sudah berjalan:
import { z } from 'zod';
const nameSchema = z.string();
const result = nameSchema.parse('Nauval');
console.log(result);Jalankan menggunakan Bun:
bun index.tsHasilnya adalah Nauval. Apabila kita mengganti 'Nauval' menjadi 123, Bun akan menampilkan error dari Zod karena 123 bukan merupakan string. Kira-kira error-nya seperti ini:
ZodError: [
{
"expected": "string",
"code": "invalid_type",
"path": [],
"message": "Invalid input: expected string, received number"
}
]Sampai di sini, proyek sudah siap digunakan untuk mempelajari schema-schema selanjutnya.
Catatan untuk Editor
Pastikan editor yang digunakan sudah mengaktifkan TypeScript language server. Apabila kamu menggunakan VSCode atau Cursor, biasanya sudah aktif secara bawaan. Untuk pengguna Neovim atau editor lainnya, pasang tsserver terlebih dahulu. Hal ini cukup penting karena salah satu fitur paling membantu dari Zod adalah autocompletion dan type inference yang langsung tampil di editor.
Diskusi
0 komentarBelum ada komentar.
Mulai diskusi