Bekerja dengan Namespace TypeScript

Ruang nama TypeScript menyediakan cara untuk mengatur dan mengelola kode dalam satu cakupan global. Ruang nama membantu dalam mengelompokkan kode terkait, mencegah konflik penamaan, dan meningkatkan kemudahan pemeliharaan kode. Panduan ini membahas dasar-dasar pembuatan dan penggunaan ruang nama TypeScript beserta contohnya.

Apa itu Namespace TypeScript?

Ruang nama adalah cara untuk merangkum kode dalam TypeScript. Ruang nama memungkinkan pengelompokan fungsi, kelas, dan variabel terkait ke dalam satu unit logis, yang dapat berguna dalam proyek besar untuk menghindari tabrakan penamaan dan meningkatkan pengorganisasian kode.

Membuat Namespace

Untuk membuat namespace, gunakan kata kunci namespace diikuti dengan nama dan blok kode. Di dalam blok namespace, tentukan fungsi, kelas, atau variabel yang harus menjadi bagian dari namespace tersebut.

// mathUtils.ts

namespace MathUtils {
  export function add(a: number, b: number): number {
    return a + b;
  }

  export function subtract(a: number, b: number): number {
    return a - b;
  }
}

Dalam contoh ini, namespace MathUtils berisi dua fungsi, add dan subtract, yang keduanya diekspor untuk digunakan di luar namespace.

Menggunakan Namespace

Untuk menggunakan kode di dalam namespace, awali nama namespace diikuti dengan titik dan nama anggota. Pastikan namespace tersedia dalam cakupan tempat namespace tersebut digunakan.

// app.ts

/// <reference path="mathUtils.ts" /> 

const sum = MathUtils.add(5, 3);
const difference = MathUtils.subtract(5, 3);

console.log(`Sum: ${sum}`);
console.log(`Difference: ${difference}`);

Dalam contoh ini, namespace MathUtils direferensikan menggunakan direktif tiga garis miring '<reference path="mathUtils.ts" />', yang memungkinkan akses ke fungsinya dalam file app.ts.

Ruang Nama Bersarang

Ruang nama dapat disarangkan di dalam ruang nama lain, yang membantu dalam pengorganisasian kode lebih lanjut. Ruang nama yang disarangkan diakses dengan merangkai nama ruang nama dengan titik.

// shapes.ts

namespace Shapes {
  export namespace Circle {
    export function area(radius: number): number {
      return Math.PI * radius * radius;
    }
  }

  export namespace Square {
    export function area(side: number): number {
      return side * side;
    }
  }
}

Dalam contoh ini, namespace Shapes berisi dua namespace bersarang: Circle dan Square, masing-masing dengan fungsi area sendiri.

Menggunakan Namespace Bersarang

Untuk mengakses anggota namespace yang bersarang, gunakan notasi titik untuk merangkai nama namespace.

// app.ts

/// <reference path="shapes.ts" /> 

const circleArea = Shapes.Circle.area(5);
const squareArea = Shapes.Square.area(4);

console.log(`Circle Area: ${circleArea}`);
console.log(`Square Area: ${squareArea}`);

Dalam contoh ini, namespace Circle dan Square diakses melalui namespace Shapes, yang menunjukkan bagaimana namespace bersarang dapat dimanfaatkan.

Kesimpulan

Namespace TypeScript merupakan alat yang ampuh untuk mengatur dan mengelola kode. Dengan menggunakan namespace, kode dapat dikelompokkan secara logis, sehingga mengurangi risiko konflik penamaan dan meningkatkan kemudahan perawatan. Memahami cara membuat dan menggunakan namespace, termasuk namespace bersarang, sangat penting untuk pengembangan TypeScript yang efektif.