Closed ExLineP closed 3 weeks ago
Здравствуйте!
Это не баг, а, скорее, ограничение на типизацию объекта с заранее неизвестной структурой в TS и IDE.
Для большого количества View вы можете указать типизацию вручную.
Если интересуют детали ограничения, то, чтобы поддержать захват типов произвольного объекта, приходится допускать возможность создания разных объектов на всех уровнях. У структуры маршрутов может быть 5 уровней вложенности: root, view, panel, tab, modal. На каждом уровне типизация поддерживает определенное количество вариантов:
Если все эти варианты перемножить, получается 273 тысячи разных объектов. TS при захвате типов перебирает и подставляет правильный. Если вариантов становится слишком много, захват типов падает и тип объекта становится unknown. Мы приблизили возможности библиотеки к пределу. Дальше захват типов не справляется, поэтому если нужно больше роутов и есть желание сохранить типизацию, следует описать ее вручную.
А будут ли подсказки для параметров в случае описания роутов вручную?
Будут, если описать указать hasParams: true и описать paramKeys у объектов panel, modal или tab, использующих параметры.
Еще один вопрос) Есть ли подсказки url строки в push методе?
Нет, на строки подсказок нет. Типизация работает только с объектами RoutesConfig.create
Описание
На данный момент у нас есть View на каждый Route. Мы решили поменять роутер и заметили, что после 7 CreateView в RoutesConfig.create перестают работать подсказки и вообще ts выдает ошибку об отсутствии любого view.
Версия vk-mini-apps-router
v1.4.6
Платформа
Web, MobileWeb, IOS, Android
Браузер и версия
No response
Шаги воспроизведения
Создать RoutesConfig.create, добавить один Root и в нем >7 CreateView и вложенными CreatePanel.
Ожидаемое поведение
Все пути работают и выбираются в подсказках IDE
Скриншоты
No response
Приложение
No response
Код, который вызвал ошибку
No response