Tipe Primitif, Union, dan Alias Tipe
Anotasikan variabel dengan string, number, boolean, dan array. Buat tipe union dengan | dan beri nama yang mudah dibaca menggunakan alias tipe.
Tipe Primitif, Union, dan Alias Tipe adalah pelajaran Frontend Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 Frontend Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Frontend Academy mencakup 4 pelajaran total.
Menganotasi Variabel
Tambahkan anotasi tipe dengan titik dua setelah nama variabel. TypeScript menyimpulkan tipe jika memungkinkan—tambahkan anotasi eksplisit jika inferensi tidak jelas atau untuk dokumentasi.
let score: number = 0;
const greeting: string = 'Hello';
let active: boolean = true;
let data: null = null;
let placeholder: undefined;
// Inferred (no annotation needed):
const pi = 3.14; // TypeScript knows this is numberTipe Primitif
Tipe primitif TypeScript sesuai dengan tipe primitif JavaScript: string, number (tanpa perbedaan antara bilangan bulat dan pecahan), boolean, null, undefined, symbol, bigint.
function greet(name: string): string {
return `Hello, ${name}`;
}
function double(n: number): number {
return n * 2;
}
function toggle(active: boolean): boolean {
return !active;
}Larik
Tentukan tipe larik dengan Type[] atau generik Array<Type>. Keduanya setara.
const names: string[] = ['Alice', 'Bob'];
const scores: number[] = [98, 87, 72];
const flags: boolean[] = [true, false, true];
// Generic syntax:
const items: Array<string> = ['a', 'b'];Tipe Gabungan: |
Tipe gabungan memungkinkan variabel menyimpan salah satu dari beberapa tipe. Gunakan operator pipa |. TypeScript mempersempit tipe di dalam kondisi.
function formatId(id: number | string): string {
if (typeof id === 'number') {
return `#${id.toString().padStart(6, '0')}`; // id is narrowed to number
}
return id.toUpperCase(); // id is narrowed to string
}Tipe Literal
Anda dapat menggunakan nilai literal berupa teks, angka, atau boolean sebagai tipe. Jika digabungkan dengan tipe gabungan, nilai-nilai tersebut membentuk sekumpulan nilai yang diizinkan—seperti enumerasi.
type Direction = 'north' | 'south' | 'east' | 'west';
type Status = 'pending' | 'active' | 'cancelled';
type DiceRoll = 1 | 2 | 3 | 4 | 5 | 6;
function move(dir: Direction) { /* ... */ }
move('north'); // OK
move('up'); // Error: Argument not assignableAlias Tipe: type
Kata kunci type membuat alias tipe—nama yang dapat digunakan kembali untuk tipe apa pun. Alias dapat digunakan untuk tipe primitif, tipe gabungan, objek, tupel, dan tipe gabungan yang kompleks.
type UserId = string | number;
type RGB = [number, number, number]; // tuple
type Callback = (event: MouseEvent) => void;
const userId: UserId = 42;
const red: RGB = [255, 0, 0];
const handler: Callback = (e) => console.log(e.type);Tipe Objek dengan type
Jelaskan struktur objek dengan alias tipe. Tandai properti sebagai opsional dengan ? dan hanya-baca dengan readonly.
type User = {
id: number;
name: string;
email: string;
role?: 'admin' | 'user'; // optional
readonly createdAt: Date; // can't reassign
};
const user: User = {
id: 1,
name: 'Alice',
email: 'alice@example.com',
createdAt: new Date()
};Tipe Irisan: &
Gabungkan beberapa tipe dengan operator &. Tipe hasilnya memiliki semua properti dari kedua tipe. Ini berguna untuk memperluas tipe.
type Timestamped = {
createdAt: Date;
updatedAt: Date;
};
type UserWithTimestamp = User & Timestamped;
// Has all User properties AND createdAt/updatedAtTipe any — Jalan Keluar
any menonaktifkan pemeriksaan tipe untuk suatu nilai. Dampaknya menular—nilai yang berasal dari any juga bertipe any. Gunakan sebagai pilihan terakhir selama migrasi, bukan sebagai solusi jangka panjang.
let data: any = fetch('/api/data'); // no type checking
data.foo.bar.baz; // no error — and no protection
// Better: use 'unknown' and narrow it:
let raw: unknown = getExternalData();
if (typeof raw === 'string') {
console.log(raw.toUpperCase()); // narrowed
}Tipe unknown — Alternatif Aman untuk any
unknown merupakan pasangan any yang aman secara tipe. Anda tidak dapat menggunakan nilai unknown sebelum mempersempit tipenya. Hal ini memaksa Anda memvalidasi data eksternal.
Tupel — Larik Berukuran Tetap
Tupel adalah larik berukuran tetap yang setiap posisinya memiliki tipe yang diketahui.
type Point = [number, number];
const origin: Point = [0, 0];
const p: Point = [3, 4];
// React useState returns a tuple:
const [count, setCount] = useState<number>(0);Pemeriksaan Singkat
Fitur TypeScript apa yang memungkinkan fungsi menerima string atau number?
Ringkasan: Tipe Primitif, Gabungan, dan Alias
Tipe primitif: string, number, boolean, null, undefined. Larik: Type[]. Tipe gabungan: A | B. Tipe literal untuk sekumpulan nilai tetap. Alias type untuk nama tipe yang dapat digunakan kembali. Properti opsional dengan ?. readonly untuk properti yang tidak dapat diubah. Utamakan unknown daripada any untuk data eksternal.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tipe Primitif, Union, dan Alias Tipe” gratis?
Ya — teks lengkap “Tipe Primitif, Union, dan Alias Tipe” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Frontend Academy, upgrade ke CoddyKit PRO. Kursus Frontend Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Tipe Primitif, Union, dan Alias Tipe”?
Anotasikan variabel dengan string, number, boolean, dan array. Buat tipe union dengan | dan beri nama yang mudah dibaca menggunakan alias tipe. Kamu berlatih Frontend 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 Frontend Academy?
Tidak diperlukan pengalaman sebelumnya. Frontend 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 2 dari 4.
Berapa lama pelajaran “Tipe Primitif, Union, dan Alias Tipe” 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 Frontend Academy ini?
Ya. Setiap pelajaran Frontend 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
- Mengapa TypeScript: Tipe Menangkap Bug saat Kompilasi
- Tipe Primitif, Union, dan Alias Tipe
- Interface dan Tipe Object
- Mengompilasi TS dan tsconfig.json