Карточка Middle Навигация обновлено
Типизация навигации
Вопрос
Как типизировать параметры экранов в React Navigation с TypeScript?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Описать тип RootStackParamList = { Home: undefined; Item: { id: string } }, передать его в createNativeStackNavigator<RootStackParamList(), а в экранах использовать NativeStackScreenProps<RootStackParamList, 'Item'. Для глобального useNavigation объявить тип в ReactNavigation.RootParamList.
Ответ
Описать тип RootStackParamList = { Home: undefined; Item: { id: string } }, передать его в createNativeStackNavigator<RootStackParamList>(), а в экранах использовать NativeStackScreenProps<RootStackParamList, 'Item'>. Для глобального useNavigation объявить тип в ReactNavigation.RootParamList. Статический API выводит типы сам.
Разбор
Тогда navigate('Item') без id не скомпилируется.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.