Вопрос проверяет понимание пространств имен в TypeScript для организации кода и предотвращения конфликтов имен.
Namespace (пространство имен) — это конструкция TypeScript, которая позволяет группировать связанные сущности (классы, интерфейсы, функции) под одним именем. Это помогает избежать загрязнения глобальной области видимости и конфликтов имен, особенно в больших проектах.
Namespace создаются с помощью ключевого слова namespace. Все, что объявлено внутри, по умолчанию является приватным, если не экспортировано с помощью export. Для доступа к членам namespace используется синтаксис ИмяПространства.Член.
namespace Geometry {
export interface Point {
x: number;
y: number;
}
export function distance(p1: Point, p2: Point): number {
return Math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2);
}
}
const p1: Geometry.Point = { x: 0, y: 0 };
const p2: Geometry.Point = { x: 3, y: 4 };
console.log(Geometry.distance(p1, p2)); // 5Namespace полезны в следующих случаях:
<script> теги.В современном TypeScript рекомендуется использовать модули ES6 (import/export) вместо namespace. Модули обеспечивают лучшую изоляцию, поддержку инструментов сборки и более предсказуемое поведение. Namespace остаются актуальными для обратной совместимости и специфических сценариев.
Вывод: Namespace — это инструмент для организации кода в TypeScript, который помогает избежать конфликтов имен. Их стоит применять в проектах, где модули ES6 недоступны или для создания глобальных библиотек, но в современной разработке предпочтение отдается модулям.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию