Operator Jenis typeof
Ambil jenis nilai saat runtime dengan typeof.
Operator Jenis typeof adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Tipe dari Nilai
Operator tipe typeof menurunkan tipe statis dari nilai saat dijalankan. Operator ini memungkinkan Anda menulis suatu nilai sekali dan menggunakan kembali strukturnya sebagai tipe, sehingga keduanya tetap sepenuhnya sinkron.
Dua Operator typeof yang Berbeda
Jangan sampai tertukar: typeof milik JavaScript mengembalikan string saat dijalankan; typeof milik TypeScript muncul dalam posisi tipe dan menghasilkan tipe. Kata kuncinya sama, tetapi dunianya berbeda.
const n = 42
console.log(typeof n) // "number" — JS runtime
type T = typeof n // number — TS type positionMenangkap Tipe Variabel
Letakkan typeof sebelum suatu nilai dalam anotasi tipe untuk menangkap tipe hasil inferensi nilai tersebut. Di sini, T menjadi string.
const greeting = "hello"
type G = typeof greeting // string
const another: G = "world"
console.log(another)Menangkap Struktur Objek
Jika diterapkan pada objek const, typeof menghasilkan struktur lengkap berdasarkan inferensi — Anda tidak perlu menulis antarmuka secara manual.
const config = { host: "localhost", port: 8080 }
type Config = typeof config // { host: string; port: number }
const c: Config = { host: "127.0.0.1", port: 3000 }
console.log(c)Inferensi Memperluas Literal secara Bawaan
Tanpa bantuan, TypeScript memperluas literal: port: 8080 menjadi number, bukan literal 8080. Sering kali ini tidak masalah, tetapi terkadang Anda ingin nilai persisnya dipertahankan.
const settings = { mode: "dark" }
type S = typeof settings // { mode: string }
const x: S = { mode: "anything" }
console.log(x)typeof dengan as const
Tambahkan as const untuk membekukan nilai menjadi tipe literalnya yang paling sempit. Sekarang typeof menangkap literal yang persis dan menandai semuanya sebagai readonly.
const settings = { mode: "dark" } as const
type S = typeof settings // { readonly mode: "dark" }
const x: S = { mode: "dark" }
console.log(x)Tipe Literal dari Larik
Dengan as const, typeof pada larik menghasilkan tupel hanya-baca yang berisi tipe literal — dasar untuk menurunkan gabungan nilai.
const roles = ["admin", "editor", "viewer"] as const
type Roles = typeof roles // readonly ["admin", "editor", "viewer"]
console.log(roles[0])Menurunkan Gabungan Nilai
Gabungkan typeof dengan akses terindeks menggunakan [number] untuk mengubah larik konstanta menjadi tipe gabungan dari nilai-nilainya.
const roles = ["admin", "editor", "viewer"] as const
type Role = typeof roles[number] // "admin" | "editor" | "viewer"
const r: Role = "editor"
console.log(r)typeof pada Fungsi
Anda juga dapat menangkap tipe suatu fungsi. Ini berguna untuk mengetik pembungkus atau menggunakan kembali signatur di tempat lain.
function add(a: number, b: number) { return a + b }
type AddFn = typeof add // (a: number, b: number) => number
const myAdd: AddFn = (x, y) => x + y
console.log(myAdd(2, 3))Menjaga Tipe Tetap Sinkron
Keuntungan utamanya: tentukan konfigurasi atau konstanta sekali sebagai nilai, lalu turunkan tipe dengan typeof. Ketika nilainya berubah, tipe tersebut diperbarui secara otomatis — tanpa duplikasi.
const defaults = { retries: 3, timeout: 1000 }
type Defaults = typeof defaults
function apply(opts: Defaults) { return opts.retries }
console.log(apply(defaults))Hanya Berfungsi pada Pengenal
Operator tipe typeof menerima pengenal atau jalur properti, bukan ekspresi sembarang. typeof (a + b) tidak diizinkan.
const obj = { user: { name: "Ada" } }
type Name = typeof obj.user.name // string
const n: Name = "Leo"
console.log(n)Pemeriksaan Singkat
Uji pemahaman Anda tentang operator tipe typeof.
Rangkuman
Operator tipe typeof (dalam posisi tipe) menurunkan tipe dari suatu nilai — variabel, objek, larik, atau fungsi. Secara bawaan, literal diperluas; tambahkan as const untuk menangkap tipe literal yang persis sebagai hanya-baca. Jika digabungkan dengan akses terindeks (typeof arr[number]), operator ini menghasilkan gabungan nilai. Menurunkan tipe dari nilai menjaga satu sumber kebenaran dan menghindari duplikasi struktur.
Belajar TypeScript dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 101
- Pelajaran
- 352
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Operator Jenis typeof” gratis?
Ya — teks lengkap “Operator Jenis typeof” 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 “Operator Jenis typeof”?
Ambil jenis nilai saat runtime dengan typeof. 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 1 dari 4.
Berapa lama pelajaran “Operator Jenis typeof” 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
- Operator Jenis typeof
- Operator Jenis keyof
- Jenis Akses Terindeks
- Menggabungkan typeof dan keyof