1. Это замечание о шаблонах не подходит для больших проектов. Если у вас нет этого дополнительного кода ts, вы в конечном итоге будете писать гораздо больше модульных тестов вместо него, выполняя именно такие проверки, которые система типов делает за вас.
  2. Вы всегда можете написать файлы объявлений для библиотек. Не жалуйтесь на то, в чем нет вины ТС.
  3. Написанные вручную типы не подвержены ошибкам. Если бы типы Пабло и Джона были структурно совместимы, они бы просто работали (в отличие от других номинальных систем типизации). И если это не так, то для любого сопровождающего, который смотрит на две вещи одновременно, это указывает на место, где можно сделать более аккуратную абстракцию. Этого бы не было, если бы это был простой js. Вы бы не стали трогать два объекта, которые выглядят почти одинаково, потому что не знаете, как пользователи могут это изменить.
  4. Вы просто неправильно используете typescript для определения типов действий. Используйте что-то вроде этого: введите Action = ‘Action1’|’Action2’|’Action3’;
    Затем определите метод отправки для использования типа Action. Затем используйте зависимые типы, чтобы связать тип полезной нагрузки с именем действия:
    type dispatch = ‹A extends Action›(action: A, payload: Payload‹A›)
    Где Payload‹A› = A extends 'Action1'?Payload1 : A расширяет 'Action2'?Payload2: никогда;
  5. Да, управление шрифтами — это навык. Что вы ожидали? Бесплатный обед?
  6. О, перестань плакать о конфигурациях. Как будто вы можете жить без confs, если вы сделали простую ваниль.

Итак, не опускайте машинописный текст.