0Pricing
TypeScript Academy · Pelajaran

Jenis Literal String dan Numerik

Batasi nilai menjadi string dan angka yang persis dengan jenis literal.

Jenis Literal String dan Numerik 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.

Apa Itu Tipe Literal?

Sebagian besar tipe menjelaskan himpunan nilai. string berarti nilai teks apa pun, sedangkan number berarti angka apa pun. Tipe literal mempersempitnya menjadi satu nilai yang tepat.

Tipe 'north' hanya mengizinkan string 'north' — tidak ada yang lain. Tipe literal memungkinkan Anda memodelkan himpunan nilai yang tepat dan terbatas langsung di sistem tipe.

let dir: 'north' = 'north';
console.log(dir);
// dir = 'south'; // Error: not assignable to type 'north'

Gabungan Literal Teks

Satu literal saja tidak terlalu berguna. Gabungkan beberapa literal dengan | untuk membentuk gabungan literal. Inilah cara yang lazim untuk memodelkan sekumpulan pilihan tetap.

Direction di bawah hanya dapat berupa salah satu dari empat string yang tepat.

type Direction = 'north' | 'south' | 'east' | 'west';

let heading: Direction = 'east';
console.log('Heading:', heading);

heading = 'west';
console.log('Now:', heading);

Menolak Nilai yang Tidak Valid

Kekuatan gabungan literal terletak pada kemampuan kompilator menolak apa pun di luar himpunan yang diizinkan. Kesalahan ketik dan pilihan yang tidak valid menjadi kesalahan saat kompilasi, bukan bug saat program berjalan.

type Direction = 'north' | 'south' | 'east' | 'west';

let heading: Direction = 'north';
console.log(heading);
// heading = 'up'; // Error: '"up"' is not assignable to 'Direction'

Literal sebagai Parameter Fungsi

Gunakan gabungan literal untuk parameter fungsi yang hanya menerima nilai tertentu. Pemanggil mendapatkan pelengkapan otomatis dan dicegah mengirimkan sesuatu yang tidak valid.

type Direction = 'north' | 'south' | 'east' | 'west';

function move(dir: Direction): string {
  return 'Moving ' + dir;
}

console.log(move('south'));
// console.log(move('left')); // Error

Tipe Literal Numerik

Tipe literal bukan hanya untuk string. Anda juga dapat menggunakan angka yang tepat. Contoh klasiknya adalah dadu bersisi enam, yang nilai sisinya harus berupa salah satu angka dari 1 hingga 6.

type Dice = 1 | 2 | 3 | 4 | 5 | 6;

function roll(): Dice {
  return (Math.floor(Math.random() * 6) + 1) as Dice;
}

console.log('Rolled:', roll());

Literal Numerik dalam Parameter

Gabungan literal numerik membatasi masukan ke himpunan angka yang tepat — cocok untuk hal seperti tingkat kualitas, kode mirip HTTP, atau ukuran kisi.

type Quality = 1 | 2 | 3;

function setQuality(level: Quality): void {
  console.log('Quality set to', level);
}

setQuality(2);
// setQuality(5); // Error: 5 is not 1 | 2 | 3

Mencampur Literal Teks dan Numerik

Sebuah gabungan dapat memadukan berbagai jenis literal. Ini berguna untuk API yang menerima prasetel bernama atau nilai mentah.

type Size = 'small' | 'large' | 0 | 100;

function resize(s: Size): void {
  console.log('Resizing to', s);
}

resize('small');
resize(100);

Tipe Literal Boolean

Bahkan boolean memiliki tipe literal: true dan false juga merupakan tipe sekaligus nilai. Tipe boolean lengkap sebenarnya hanyalah true | false.

type AlwaysOn = true;

let enabled: AlwaysOn = true;
console.log('Enabled:', enabled);
// enabled = false; // Error: false not assignable to true

Literal Meningkatkan Dokumentasi

Gabungan literal juga berfungsi sebagai dokumentasi. Siapa pun yang membaca type Status = 'idle' | 'loading' | 'done' akan langsung mengetahui setiap kemungkinan status — tanpa tebakan dan tanpa string khusus yang tersebar di seluruh kode.

type Status = 'idle' | 'loading' | 'done';

function render(s: Status): string {
  return 'State is: ' + s;
}

console.log(render('loading'));

Menggabungkan Literal dengan Tipe Lain

Anda dapat mencampur tipe literal dengan tipe yang lebih umum dalam sebuah gabungan. Pola yang umum adalah 'auto' | number, yang berarti 'auto' atau angka apa pun.

type Width = 'auto' | number;

function setWidth(w: Width): void {
  console.log('Width:', w);
}

setWidth('auto');
setWidth(320);

Literal sebagai Konstanta Bernama

Tipe literal sangat cocok dipasangkan dengan konstanta bernama. Definisikan tipe sekali, gunakan kembali di mana saja, dan lakukan refaktor dengan aman. Kompilator menjaga konsistensi setiap penggunaannya.

type Theme = 'light' | 'dark';

const DEFAULT_THEME: Theme = 'dark';

function applyTheme(t: Theme): void {
  console.log('Applying', t, 'theme');
}

applyTheme(DEFAULT_THEME);

Pemeriksaan Singkat

Uji pemahaman Anda tentang tipe literal.

Ringkasan: Tipe Literal

Anda telah mempelajari bahwa:

  • Tipe literal mewakili satu nilai yang tepat, misalnya 'north' atau 6.
  • Menggabungkan literal dengan | menghasilkan gabungan terbatas dari nilai yang diizinkan.
  • Tipe ini berlaku untuk string, angka, dan boolean, serta dapat dicampur dengan tipe yang lebih umum seperti 'auto' | number.
  • Saat digunakan sebagai parameter fungsi, tipe ini memberikan pelengkapan otomatis dan menolak masukan yang tidak valid saat kompilasi.

Selanjutnya, kita akan membahas cara TypeScript menentukan pilihan antara tipe literal dan tipe yang diperlebar.

type Direction = 'north' | 'south' | 'east' | 'west';
type Dice = 1 | 2 | 3 | 4 | 5 | 6;

function describe(d: Direction, n: Dice): string {
  return 'Go ' + d + ' ' + n + ' steps';
}

console.log(describe('north', 3));

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Jenis Literal String dan Numerik” gratis?

Ya — teks lengkap “Jenis Literal String dan Numerik” 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 “Jenis Literal String dan Numerik”?

Batasi nilai menjadi string dan angka yang persis dengan jenis literal. 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 “Jenis Literal String dan Numerik” 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. Jenis Literal String dan Numerik
  2. Literal Boolean dan Inferensi Literal
  3. Pernyataan const dengan as const
  4. Menggabungkan Literal Menjadi Union
← Kembali ke TypeScript Academy