TypeScript Academy · Pelajaran

Jenis keyof dan Akses Berindeks

Akses jenis sifat objek secara dinamik dengan keyof dan T[K].

Pelajaran 1 daripada 413 langkah

Jenis keyof dan Akses Berindeks ialah pelajaran TypeScript Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran TypeScript Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

keyof menghasilkan kesatuan nama sifat bagi sesuatu jenis objek. Jenis capaian berindeks (T[K]) mendapatkan jenis pada kunci sifat tertentu.

Asas keyof

keyof T mengembalikan kesatuan semua jenis nama sifat bagi T.
interface User { id: number; name: string; email: string; }
type UserKeys = keyof User; // 'id' | 'name' | 'email'

Capaian Berindeks: T[K]

Gunakan T[K] untuk mendapatkan jenis sifat K dalam jenis T.
type IdType = User['id'];   // number
type NameType = User['name']; // string

Capaian Sifat Dinamik

Gabungkan keyof dan generik untuk membina fungsi pengakses sifat yang selamat dari segi jenis.
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
const name = getProperty(user, 'name'); // string

keyof dengan typeof

Gunakan typeof pada nilai, kemudian keyof untuk mendapatkan nama sifatnya tanpa mengisytiharkan antara muka.
const config = { host: 'localhost', port: 3000 };
type ConfigKey = keyof typeof config; // 'host' | 'port'

Kesatuan Jenis Berindeks

Indekskan sesuatu jenis dengan kesatuan kunci untuk mendapatkan kesatuan jenis nilainya.
type NumericValues = User['id' | 'age']; // number | number = number

keyof pada Tatasusunan

keyof pada jenis tatasusunan mengembalikan jenis indeks tatasusunan serta nama kaedah tatasusunan.
type ArrKey = keyof string[]; // number | 'length' | 'push' | ...
type Element = string[][number]; // string

Capaian Berindeks Rekursif

Rantaikan jenis capaian berindeks untuk objek bersarang.
type Address = { city: string; zip: string };
type Profile = { address: Address };
type City = Profile['address']['city']; // string

Kekangan dengan keyof

Gunakan K extends keyof T sebagai kekangan generik untuk memastikan K ialah kunci T yang sah.
function setProperty<T, K extends keyof T>(obj: T, key: K, value: T[K]): void {
  obj[key] = value;
}

Jenis Terpetakan Menggunakan keyof

Jenis terpetakan mengulangi keyof T untuk mengubah jenis objek.
type Readonly2<T> = { readonly [K in keyof T]: T[K] };

keyof dalam Jenis Bersyarat

keyof sangat berkuasa dalam jenis bersyarat untuk mengekstrak kumpulan kunci tertentu.
type StringKeys<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];

Semakan Pantas

Apakah yang dikembalikan oleh `User['name']` jika `interface User { name: string }`?

Rumusan

keyof mengekstrak nama sifat sebagai jenis kesatuan. T[K] mendapatkan jenis pada sesuatu kunci. Kedua-duanya membolehkan capaian sifat yang selamat dari segi jenis, jenis terpetakan dan utiliti jenis bersyarat.
Percuma untuk bermula

Pelajari TypeScript dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
101
Pelajaran
352

Soalan Lazim

Adakah pelajaran “Jenis keyof dan Akses Berindeks” percuma?

Ya — teks penuh “Jenis keyof dan Akses Berindeks” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus TypeScript Academy, tingkat taraf kepada CoddyKit PRO. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Jenis keyof dan Akses Berindeks”?

Akses jenis sifat objek secara dinamik dengan keyof dan T[K]. Anda berlatih TypeScript Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan TypeScript Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran TypeScript Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Jenis keyof dan Akses Berindeks” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Jenis keyof dan Akses Berindeks
  2. Kekangan Generik: Mengecilkan Parameter Jenis
  3. Jenis Bersyarat: T extends U ? X : Y
  4. Jenis Bersyarat Teragih
← Kembali ke TypeScript Academy