Что такое Namespaces

Ответ

Namespaces в JavaScript (или TypeScript) позволяют организовывать код в логические группы, предотвращая конфликты имен. Они особенно полезны в глобальной области видимости.

Пример с TypeScript:

namespace MyUtils {
  export function log(message: string) {
    console.log(message);
  }
}

MyUtils.log("Hello"); // Работает
log("Hi"); // Ошибка: функция не найдена

Особенности:

  • Инкапсулируют код, делая его доступным только внутри namespace
  • Могут быть вложенными
  • В современном JS/TS часто заменяются модулями (import/export)
  • В TypeScript компилируются в IIFE (самовызывающиеся функции)