Что означает конструкция: const loadedPaths = new Set<string>();

Эта конструкция означает: 👉 создаётся пустое множество ( Set ) строк , которое будет хранить уникальные значения . 

 Разберём по частям 👇 

 

 Разбор строки 

 const loadedPaths = new Set<string>();

 

 1️⃣ Set 

 Set — это встроенная структура данных в JavaScript. 

 Она: 

 

 

 хранит уникальные значения 

 

 

 не допускает дубликатов 

 

 

 быстро проверяет наличие элемента 

 

 

 Пример: 

 const s = new Set();

s.add('/login');

s.add('/login');

console.log(s.size); // 1

 

 

 2️⃣ <string> 

 Это TypeScript-тип . 

 Set<string>

 

 означает: 

 

 

 в Set можно положить только строки 

 

 

 TypeScript будет ругаться, если положить число или объект 

 

 

 loadedPaths.add('/users'); // ✅

loadedPaths.add(123); // ❌ ошибка TS

 

 

 3️⃣ new Set() 

 Создаёт новый пустой Set . 

 На старте: 

 loadedPaths.size === 0

 

 

 Зачем это обычно используют 

 🔹 Отслеживать уже обработанные маршруты 

 if (!loadedPaths.has(to.path)) {

 loadRoute(to.path)

 loadedPaths.add(to.path)

}

 

 🔹 Не выполнять один и тот же код дважды 

 if (loadedPaths.has(key)) return

 

 🔹 Кешировать результаты 

 loadedPaths.add('/profile')

 

 

 Почему не массив ( string[] ) 

 

 

 

 Set 

 Array 

 

 

 

 

 Гарантирует уникальность 

 Нужно проверять вручную 

 

 

 Быстро has() 

 Медленно includes() 

 

 

 Нет дубликатов 

 Легко ошибиться 

 

 

 

 

 В контексте vue-router (часто) 

 const loadedPaths = new Set<string>();

router.beforeEach((to) => {

 if (loadedPaths.has(to.path)) return

 loadedPaths.add(to.path)

 // динамическая загрузка роутов

})

 

 

 Коротко 

 

 const loadedPaths = new Set<string>(); 👉 хранилище уникальных строк , обычно для контроля «что уже было обработано» 

 

  