Рецепты TypeScript: типизированное преобразование объекта

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Всем привет от ведущего разработчика из Cloud.ru! Как и обещал в предыдущей статье, продолжаю рассказывать про TypeScript-рецепты. Наши рецепты — это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.

В этой статье предлагаю обсудить, как на обычном TypeScript приготовить такую функцию, которая из конфига роутинга по приложению вычислит объект, содержащий все пути внутри приложения. При этом сам объект роутинга будет иметь некоторую вложенность, а итоговая мапа с путями будет плоской структурой со значениями полей в виде строк. И всё это строго типизировано!

Задача. Решаем, что и как готовить

Итак, у нас есть некий конфиг с роутингом, который пока никак не типизирован:

const ROUTE_CONFIG = {
  url: 'app',
  id: 'root',
  children: [
    {
      url: ':user',
      id: 'user',
      children: [
        {
          url: 'resource',
          id: 'resource',
          children: [
            { url: ':id', id: 'resourceId' },
          ],
        },
      ],
    },
    {
      url: 'settings',
      id: 'settings',
    },
  ],
}

В идеальном мире мы бы хотели, чтобы такой объект был источником правды во всех вопросах внутри приложения — разработчик описал бы конфиг и нигде не дублировал информацию из него.

Давайте представим такую ситуацию: внутри приложения появляются ссылки на его внутренние страницы (знаю, случай редкий, но вдруг

Источник: https://habr.com/ru/companies/cloud_ru/articles/860770/


Интересные статьи

Интересные статьи

USM, НеЖелательные Явления, ненужная документация, допущения и ограничения, тупиковый путь в тимлиды, красные флаги при трудоустройстве и всё интересное, что писали на этой неделе про у...
Привет, Хабр! В первом дайджесте 2024 года расскажем про нововведения в хранении бухгалтерских данных, итоги нашего блога, задания с хакерского квеста и лучшие статьи.
Начнем с небольшого предисловия. Битрикс24 позволяет автоматизировать множество разных процессов внутри компании. В частности в Битрикс есть большой и сильный блок автоматизации процессов работы с кли...
Многие компании в определенный момент приходят к тому, что ряд процессов в бизнесе нужно автоматизировать, чтобы не потерять свое место под солнцем и своих заказчиков. Поэтому все...
Несмотря на то, что “в коробке” с Битриксом уже идут модули как для SOAP (модуль “Веб сервисы” в редакции “Бизнес” и старше), так и для REST (модуль “Rest API” во всех редакциях, начиная с...