Робота з просторами імен TypeScript

Простір імен TypeScript забезпечує спосіб організації коду та керування ним у межах єдиної глобальної області. Простори імен допомагають групувати пов’язаний код разом, запобігаючи конфліктам імен і покращуючи зручність обслуговування коду. Цей посібник охоплює основи створення та використання просторів імен TypeScript із прикладами.

Що таке простори імен TypeScript?

Простори імен — це спосіб інкапсуляції коду в TypeScript. Вони дозволяють групувати пов’язані функції, класи та змінні в єдину логічну одиницю, що може бути корисним у великих проектах, щоб уникнути колізій імен і покращити організацію коду.

Створення простору імен

Щоб створити простір імен, використовуйте ключове слово namespace, за яким слідує ім’я та блок коду. У блоці простору імен визначте функції, класи або змінні, які мають бути частиною цього простору імен.

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

У цьому прикладі простір імен MathUtils містить дві функції, add і subtract, які експортуються для використання поза простором імен.

Використання простору імен

Щоб використовувати код у просторі імен, поставте перед назвою простору імен крапку та ім’я члена. Переконайтеся, що простір імен доступний у тій області, де він використовується.

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

У цьому прикладі на простір імен MathUtils використовується директива з потрійною скісною рискою '<reference path="mathUtils.ts" />', що дозволяє отримати доступ до його функцій у файлі app.ts.

Вкладені простори імен

Простори імен можуть бути вкладені в інші простори імен, що допомагає в подальшій організації коду. Доступ до вкладених просторів імен здійснюється шляхом об’єднання імен просторів імен крапками.

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

У цьому прикладі простір імен Shapes містить два вкладені простори імен: Circle і Square, кожна з яких має власну функцію area.

Використання вкладених просторів імен

Щоб отримати доступ до членів вкладених просторів імен, використовуйте крапкову нотацію для ланцюжка імен просторів імен.

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

У цьому прикладі доступ до просторів імен Circle і Square здійснюється через простір імен Shapes, демонструючи, як можна використовувати вкладені простори імен.

Висновок

Простір імен TypeScript є потужним інструментом для організації коду та керування ним. Використовуючи простори імен, код можна логічно згрупувати, зменшуючи ризик конфліктів імен і покращуючи технічне обслуговування. Розуміння того, як створювати та використовувати простори імен, включаючи вкладені простори імен, є важливим для ефективної розробки TypeScript.