Namespaces
В TypeScript namespace (пространство имён) — это способ группировки логически связанных объектов, функций и интерфейсов. Они помогают избежать конфликтов имён в больших кодовых базах, инкапсулируя объявления внутри единого блока.
Основные особенности:
- Определяются с помощью ключевого слова
namespace. - Внутри можно объявлять переменные, функции, интерфейсы, классы и другие элементы.
- Для экспорта элементов используется
export, иначе они остаются приватными. - Для доступа к элементам снаружи используется
namespaceName.elementName.
namespace MyNamespace {
export class Person {
constructor(public name: string) {}
greet() {
return `Hello, ${this.name}!`;
}
}
}
// Использование
const user = new MyNamespace.Person("Alice");
console.log(user.greet()); // Hello, Alice!
Важно: В современных проектах вместо namespace чаще используют модули (ES6 modules), так как они поддерживаются нативно и лучше интегрируются с инструментами сборки.
🚀 Источник: ChatGPT