Tipe Literal
Termasuk bagian Pengantar TypeScript dalam perjalanan JavaScript di Coddy. Pelajaran 33 dari 73.
Tipe literal memungkinkan kamu membatasi variabel ke nilai yang tepat dan spesifik, bukan ke kategori yang luas. Alih-alih menerima string apa pun, kamu bisa membatasinya hanya ke "left", "right", "up", atau "down".
Tipe literal menggunakan nilai yang persis sama sebagai tipe itu sendiri.
Kamu dapat membuat tipe literal untuk string, angka, atau nilai boolean:
let direction: "left" = "left"; // Only "left" is allowed
let count: 42 = 42; // Only the number 42 is allowed
let isReady: true = true; // Only true is allowedTipe literal menjadi lebih bermanfaat saat digabungkan dengan tipe union, sehingga menghasilkan kumpulan nilai yang diizinkan dan terkendali. Ini cocok untuk situasi seperti arah, kode status, atau opsi konfigurasi:
type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";
let playerMove: Direction = "up"; // Valid
let orderStatus: Status = "pending"; // Valid
// let invalid: Direction = "diagonal"; // Error!Pendekatan ini memberimu fleksibilitas dengan beberapa pilihan sekaligus menjaga keamanan tipe yang ketat. TypeScript akan mendeteksi salah ketik dan nilai yang tidak valid saat kompilasi, sehingga kodemu lebih andal daripada jika menggunakan tipe string umum.
Tantangan
MudahBuat alias tipe bernama Direction untuk tipe literal "left" | "right" | "up" | "down".
Buat alias tipe bernama GameState untuk tipe literal "menu" | "playing" | "paused" | "gameover".
Buat alias tipe bernama Difficulty untuk tipe literal "easy" | "medium" | "hard".
Sekarang, deklarasikan variabel berikut menggunakan alias tipe yang kamu buat:
- Deklarasikan variabel bernama
playerDirectiondengan tipeDirectiondan tetapkan nilai"up"padanya - Deklarasikan variabel bernama
currentStatedengan tipeGameStatedan tetapkan nilai"playing"padanya - Deklarasikan variabel bernama
selectedDifficultydengan tipeDifficultydan tetapkan nilai"medium"padanya
Buat fungsi bernama movePlayer yang menerima parameter bernama direction dengan tipe Direction dan mengembalikan string. Fungsi tersebut harus mengembalikan pesan dengan format "Moving [direction]".
Buat fungsi lain bernama updateGameState yang menerima parameter bernama state dengan tipe GameState dan mengembalikan string. Fungsi tersebut harus mengembalikan pesan dengan format "Game state: [state]".
Panggil fungsi-fungsimu dengan variabel yang kamu buat dan cetak hasilnya:
- Panggil
movePlayerdenganplayerDirectiondan cetak hasilnya - Panggil
updateGameStatedengancurrentStatedan cetak hasilnya - Cetak nilai
selectedDifficulty
Cetak setiap hasil pada baris terpisah sesuai urutan yang ditentukan di atas.
Coba sendiri
// TODO: Tulis kodemu di sini
// Buat alias tipe untuk Direction, GameState, dan Difficulty
// Deklarasikan variabel menggunakan alias tipemu
// Buat fungsi movePlayer dan updateGameState
// Panggil fungsi-fungsi tersebut dan cetak hasilnyaPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengantar TypeScript
1Memulai dengan TypeScript
Apa itu TypeScript?Mengapa menggunakan TypeScript?Kode TypeScript pertamamuProses kompilasi dan errorRekap: Pengantar TS4Bekerja dengan Fungsi
Menentukan Tipe Parameter dan Nilai KembaliMenentukan Tipe Fungsi PanahTipe Nilai Kembali 'void'Parameter Opsional dengan '?'Nilai Default ParameterMenentukan Tipe Rest ParameterMendefinisikan Tipe FungsiRingkasan: Membangun Fungsi Bertipe2Tipe Inti
Tipe Dasar: str, num, booleanTipe 'any': Jalan KeluarTipe 'unknown'Bekerja dengan null & undefinedInferensi Tipe dalam PraktikAnotasi Tipe EksplisitRangkuman: Latihan Tipe Inti5Tipe: Alias, Union & Inter
Alias Tipe untuk Tipe PrimitifTipe Union ('|')Bekerja dengan Tipe UnionTipe LiteralTipe Intersection ('&')Menggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan3Struktur Data: array dan tuple
Array BertipeModifier 'readonly' untuk arrayApa Itu tuple?Mendeklarasikan dan Mengakses tupleDestructuring tupletuple ReadonlyArray Bertipe MultidimensiOperator Spread dengan arrayRangkuman: array dan tupleLatihan sendiri: Playground TypeScript