0Pricing
TypeScript Academy · Pelajaran

Readonly, Exclude, Extract, NonNullable

Terapkan lebih banyak tipe utilitas untuk imutabilitas dan penyaringan.

Readonly, Exclude, Extract, NonNullable adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Selamat Datang

Pustaka standar TypeScript mencakup beberapa tipe utilitas selain Partial, Required, Pick, dan Omit. Pelajaran ini membahas Readonly, Exclude, Extract, dan NonNullable.

Readonly<T>

Menjadikan semua properti T hanya-baca. Mencegah penetapan ulang properti setelah pembuatan.
interface Config { host: string; port: number; }
const cfg: Readonly<Config> = { host: 'localhost', port: 3000 };
// cfg.host = 'remote'; // Error!

Exclude<T, U>

Menghapus dari gabungan T semua anggota yang dapat ditetapkan ke U.
type Status = 'pending' | 'active' | 'banned' | 'deleted';
type ActiveStatus = Exclude<Status, 'banned' | 'deleted'>;
// 'pending' | 'active'

Extract<T, U>

Mempertahankan hanya anggota gabungan T yang dapat ditetapkan ke U. Ini merupakan kebalikan dari Exclude.
type StringOrNumber = string | number | boolean;
type JustStrNum = Extract<StringOrNumber, string | number>;
// string | number

NonNullable<T>

Menghapus null dan undefined dari T.
type MaybeString = string | null | undefined;
type DefinitelyString = NonNullable<MaybeString>; // string

ReturnType<T>

Mengekstrak tipe nilai yang dikembalikan dari tipe fungsi T.
function fetchUser() { return { id: 1, name: 'Alice' }; }
type User = ReturnType<typeof fetchUser>; // { id: number; name: string }

Parameters<T>

Mengekstrak tipe parameter suatu fungsi sebagai tupel.
function add(a: number, b: number): number { return a + b; }
type AddParams = Parameters<typeof add>; // [number, number]

InstanceType<T>

Mendapatkan tipe instans yang dihasilkan oleh tipe fungsi konstruktor.
class HttpClient { get(url: string) { return fetch(url); } }
type Client = InstanceType<typeof HttpClient>; // HttpClient

Awaited<T>

Membuka lapisan tipe Promise yang bertingkat.
type A = Awaited<Promise<string>>;          // string
type B = Awaited<Promise<Promise<number>>>;  // number

Menggunakan Beberapa Utilitas Bersama

Rangkai tipe utilitas untuk melakukan transformasi yang kompleks.
type SafeInput<T> = Readonly<Partial<NonNullable<T>>>;

Tipe Utilitas Hanyalah Alias Tipe

Setiap tipe utilitas bawaan diimplementasikan menggunakan tipe terpetakan, tipe kondisional, dan infer. Anda dapat membuat tipe Anda sendiri.

Pemeriksaan Singkat

Apa yang dihasilkan oleh `Exclude<'a' | 'b' | 'c', 'b'>`?

Ringkasan

Readonly mencegah mutasi. Exclude menghapus anggota gabungan. Extract mempertahankan anggota yang cocok. NonNullable menghapus nilai yang dapat berupa null. ReturnType, Parameters, dan InstanceType mengekstrak informasi tipe fungsi dan kelas.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Readonly, Exclude, Extract, NonNullable” gratis?

Ya — teks lengkap “Readonly, Exclude, Extract, NonNullable” 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 “Readonly, Exclude, Extract, NonNullable”?

Terapkan lebih banyak tipe utilitas untuk imutabilitas dan penyaringan. 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 4 dari 4.

Berapa lama pelajaran “Readonly, Exclude, Extract, NonNullable” 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. Partial dan Required: Mengubah Keopsionalan
  2. Pick dan Omit: Memilih Properti
  3. Record: Memetakan Kunci ke Tipe Nilai
  4. Readonly, Exclude, Extract, NonNullable
← Kembali ke TypeScript Academy