Làm việc với không gian tên TypeScript

Không gian tên TypeScript cung cấp một cách để sắp xếp và quản lý mã trong một phạm vi toàn cục duy nhất. Không gian tên giúp nhóm các mã liên quan lại với nhau, ngăn ngừa xung đột đặt tên và cải thiện khả năng bảo trì mã. Hướng dẫn này bao gồm những điều cơ bản về việc tạo và sử dụng không gian tên TypeScript với các ví dụ.

Không gian tên TypeScript là gì?

Không gian tên là một cách để đóng gói mã trong TypeScript. Chúng cho phép nhóm các hàm, lớp và biến liên quan thành một đơn vị logic duy nhất, có thể hữu ích trong các dự án lớn để tránh xung đột tên và cải thiện tổ chức mã.

Tạo không gian tên

Để tạo một không gian tên, hãy sử dụng từ khóa namespace theo sau là tên và một khối mã. Bên trong khối không gian tên, hãy định nghĩa các hàm, lớp hoặc biến sẽ là một phần của không gian tên đó.

// 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;
  }
}

Trong ví dụ này, không gian tên MathUtils chứa hai hàm, addsubtract, cả hai đều được xuất để sử dụng bên ngoài không gian tên.

Sử dụng Không gian tên

Để sử dụng mã bên trong không gian tên, hãy thêm tiền tố vào tên không gian tên theo sau là dấu chấm và tên thành viên. Đảm bảo rằng không gian tên có sẵn trong phạm vi mà nó đang được sử dụng.

// 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}`);

Trong ví dụ này, không gian tên MathUtils được tham chiếu bằng lệnh có ba dấu gạch chéo '<reference path="mathUtils.ts" />', cho phép truy cập vào các hàm của không gian tên này trong tệp app.ts.

Không gian tên lồng nhau

Không gian tên có thể được lồng vào trong các không gian tên khác, giúp tổ chức mã tốt hơn. Không gian tên lồng nhau được truy cập bằng cách nối các tên không gian tên bằng dấu chấm.

// 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;
    }
  }
}

Trong ví dụ này, không gian tên Shapes chứa hai không gian tên lồng nhau: CircleSquare, mỗi không gian có hàm area riêng.

Sử dụng không gian tên lồng nhau

Để truy cập các thành viên của không gian tên lồng nhau, hãy sử dụng ký hiệu dấu chấm để nối các tên không gian tên.

// 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}`);

Trong ví dụ này, không gian tên CircleSquare được truy cập thông qua không gian tên Shapes, cho thấy cách sử dụng không gian tên lồng nhau.

Phần kết luận

Không gian tên TypeScript là một công cụ mạnh mẽ để tổ chức và quản lý mã. Bằng cách sử dụng không gian tên, mã có thể được nhóm lại một cách hợp lý, giảm nguy cơ xung đột tên và cải thiện khả năng bảo trì. Hiểu cách tạo và sử dụng không gian tên, bao gồm không gian tên lồng nhau, là điều cần thiết để phát triển TypeScript hiệu quả.