0Pricing
TypeScript Academy · Pelajaran

Namespace vs Modul: Penggunaan Modern

Pahami alasan modul lebih diutamakan daripada namespace.

Namespace vs Modul: Penggunaan Modern adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Selamat Datang

TypeScript awalnya memiliki ruang nama (sebelumnya disebut 'modul internal') untuk mengatur kode. TypeScript modern menggunakan modul ES sebagai gantinya. Pelajaran ini menjelaskan kapan masing-masing pilihan tepat digunakan.

Apa Itu Ruang Nama

Ruang nama adalah cara khusus TypeScript untuk mengelompokkan kode yang saling berkaitan dalam cakupan bernama menggunakan kata kunci `namespace`.
namespace Geometry {
  export interface Point { x: number; y: number; }
  export function distance(a: Point, b: Point): number {
    return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
  }
}

Mengakses Anggota Ruang Nama

Akses anggota ruang nama melalui nama ruang nama tersebut menggunakan notasi titik.
const p1: Geometry.Point = { x: 0, y: 0 };
const p2: Geometry.Point = { x: 3, y: 4 };
const d = Geometry.distance(p1, p2); // 5

Ruang Nama Bertingkat

Ruang nama dapat dibuat bertingkat.
namespace App {
  export namespace Models {
    export interface User { name: string; }
  }
}
const u: App.Models.User = { name: 'Alice' };

Penggabungan Ruang Nama

Ruang nama mendukung penggabungan deklarasi — dua deklarasi ruang nama dengan nama yang sama akan digabungkan.
namespace Validation {
  export function validate(s: string): boolean { return s.length > 0; }
}
namespace Validation {
  export function sanitize(s: string): string { return s.trim(); }
}

Mengapa Modul Lebih Disarankan

Modul ES adalah standar JavaScript. Modul ini didukung oleh semua alat pengemas, dapat menjalani penghapusan kode yang tidak digunakan secara efisien, serta bekerja secara natif di peramban modern dan Node.js.

Padanan Modul untuk Ruang Nama

Dalam TypeScript modern, ruang nama cukup diwujudkan sebagai sebuah berkas. Ekspor hal-hal yang ingin dijadikan publik dan pertahankan sisanya sebagai privat.
// geometry.ts
export interface Point { x: number; y: number; }
export function distance(a: Point, b: Point): number {
  return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
}

Ruang Nama Masih Digunakan dalam Berkas Deklarasi

Ruang nama masih banyak digunakan dalam berkas deklarasi .d.ts untuk pustaka global (seperti tipe DOM dan tipe Node.js) karena ruang nama tersebut memperluas cakupan global.
// node.d.ts
declare namespace NodeJS {
  interface ProcessEnv { NODE_ENV?: 'development' | 'production'; }
}

Referensi Tiga Garis Miring (Warisan)

Sebelum modul ES, direktif tiga garis miring digunakan untuk merujuk berkas lain. Saat ini, tsconfig includes dan impor modul menggantikannya.
/// <reference types="node" />
/// <reference path="./other.d.ts" />

Kapan Ruang Nama Masih Digunakan

Gunakan ruang nama: (1) dalam berkas deklarasi untuk tipe global ambient, (2) saat memperluas ruang nama global yang sudah ada dari pustaka.

Memigrasikan Ruang Nama ke Modul

Ganti `namespace Foo {}` dengan berkas modul. Ganti `/// ` dengan impor. Tim TypeScript telah mendokumentasikan jalur migrasi ini.

Pemeriksaan Singkat

Dalam TypeScript modern, apa pengganti ruang nama yang disarankan?

Ringkasan

Ruang nama mengatur kode dalam cakupan bernama, tetapi merupakan warisan dalam TypeScript modern. Gunakan modul ES (import/export) untuk kode aplikasi. Ruang nama tetap berguna dalam berkas deklarasi untuk perluasan tipe global.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Namespace vs Modul: Penggunaan Modern” gratis?

Ya — teks lengkap “Namespace vs Modul: Penggunaan Modern” 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 “Namespace vs Modul: Penggunaan Modern”?

Pahami alasan modul lebih diutamakan daripada namespace. 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 4 dari 4.

Berapa lama pelajaran “Namespace vs Modul: Penggunaan Modern” 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. Sintaks Modul ES: import dan export
  2. Ekspor Ulang dan File Barrel
  3. Import dan Ekspor Khusus Tipe
  4. Namespace vs Modul: Penggunaan Modern
← Kembali ke TypeScript Academy