0Pricing
TypeScript Academy · Pelajaran

Pola yang dapat digunakan ulang untuk model data

Terapkan pola generik pada model nyata: Paginated , Result , DTO dengan Pick/Omit/Partial, dan peta yang dikunci berdasarkan id.

Pola yang dapat digunakan ulang untuk model data adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. 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 3 pelajaran total.

Pendahuluan

Tujuan: Kemas bentuk data umum sebagai tipe generik agar Anda dapat menggunakan kembali struktur tanpa kehilangan keamanan tipe.

  • Paginated<T>
  • Result<T,E>
  • DTO dengan Pick/Omit/Partial
  • Pemetaan dengan kunci id

Paginated<T>

Paginated<T> memusatkan metadata dan menjaga tipe item T tetap tepat untuk daftar.

type Paginated<T> = {
  items: T[];
  total: number;
  page: number;
  pageSize: number;
};

type User = { id: number; name: string };

const page1: Paginated<User> = {
  items: [{ id: 1, name: "Ada" }],
  total: 10,
  page: 1,
  pageSize: 5,
};

console.log(page1.items[0].name);

Result<T,E>

Result<T,E> memodelkan keberhasilan/kegagalan secara eksplisit dengan pembeda (ok) untuk percabangan yang aman.

type Ok<T> = { ok: true; data: T };
type Err<E = string> = { ok: false; error: E };

type Result<T, E = string> = Ok<T> | Err<E>;

function readUser(id: number): Result<{ id: number; name: string }> {
  return id > 0 ? { ok: true, data: { id, name: "Ada" } } : { ok: false, error: "not found" };
}

const r = readUser(1);
if (r.ok) {
  console.log(r.data.name);
} else {
  console.error(r.error);
}

Pola DTO

Dengan Pick/Omit/Partial, Anda dapat menurunkan tipe DTO yang ringkas dari model inti—tanpa duplikasi.

type User = { id: number; name: string; email?: string; role: "user" | "admin" };

type UserCreateDto = Pick<User, "name" | "email">; // fields required to create

// Update = partial editable fields
type UserUpdateDto = Partial<Pick<User, "name" | "email">>;

const createBody: UserCreateDto = { name: "Ada", email: "a@x.io" };
const updateBody: UserUpdateDto = { name: "Ada L." };

MapById<T>

MapById<T> mengindeks entitas berdasarkan id untuk pencarian cepat. Batasi T untuk memastikan id tersedia.

type Key = string | number;

type MapById<T extends { id: Key }> = Record<Key, T>;

const byId: MapById<{ id: number; name: string }> = {
  1: { id: 1, name: "Ada" },
  2: { id: 2, name: "Lin" },
};

console.log(byId[1].name);

Tips

Tips:

  • Jaga pola tetap kecil dan dapat dikomposisikan.
  • Utamakan union terdiskriminasi untuk mesin keadaan.
  • Turunkan DTO dari model—hindari penyalinan manual.

Pemeriksaan Paginated<T>

Pemeriksaan singkat: Mengapa perlu mendefinisikan Paginated<T> generik?

Rangkuman

Rangkuman: Generalisasikan bentuk yang berulang: Paginated<T>, Result<T,E>, DTO dengan Pick/Omit/Partial, dan pemetaan yang diindeks berdasarkan id. Pembantu kecil dapat digunakan di berbagai fitur.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pola yang dapat digunakan ulang untuk model data” gratis?

Ya — teks lengkap “Pola yang dapat digunakan ulang untuk model data” 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 3 pelajaran total.

Apa yang akan aku pelajari di “Pola yang dapat digunakan ulang untuk model data”?

Terapkan pola generik pada model nyata: Paginated , Result , DTO dengan Pick/Omit/Partial, dan peta yang dikunci berdasarkan id. 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 3 dari 3.

Berapa lama pelajaran “Pola yang dapat digunakan ulang untuk model data” 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. Antarmuka & alias tipe generik
  2. Tipe Kondisional (pengantar) & distribusi atas union
  3. Pola yang dapat digunakan ulang untuk model data
← Kembali ke TypeScript Academy