Closed 7iomka closed 2 years ago
@7iomka в вашем случае, можно вынять тип из компонента, таким образом:
type MapProps = React.ComponentProps<typeof Map>;
type PlacemarkGeometry = React.ComponentProps<typeof Placemark>['geometry'];
interface YandexPlaceMark {
geometry: PlacemarkGeometry;
hintContent?: string;
}
interface YandexMapProps extends MapProps {
zoom: number;
placeMarks: YandexPlaceMark[];
className?: string;
}
Интерфейсы стали скрытыми в компоненте, что позволяет гибче с ними работать. Так проще добавлять новые интерфейсы и переименовывать старые когда нужно, без изменений в пользовательском коде) Например добавляется HOC и он сам может расширить своими типами интерфейс компонента который ему передается. Но типовой переменной нет, так как он сам выводит новый тип компонента.
@7iomka в вашем случае, можно вынять тип из компонента, таким образом:
type MapProps = React.ComponentProps<typeof Map>; type PlacemarkGeometry = React.ComponentProps<typeof Placemark>['geometry']; interface YandexPlaceMark { geometry: PlacemarkGeometry; hintContent?: string; } interface YandexMapProps extends MapProps { zoom: number; placeMarks: YandexPlaceMark[]; className?: string; }
Интерфейсы стали скрытыми в компоненте, что позволяет гибче с ними работать. Так проще добавлять новые интерфейсы и переименовывать старые когда нужно, без изменений в пользовательском коде) Например добавляется HOC и он сам может расширить своими типами интерфейс компонента который ему передается. Но типовой переменной нет, так как он сам выводит новый тип компонента.
Спасибо Для разработки это может и удобнее, но для юза кастомной обёртки для конечных пользователей стало сложнее типизировать. например я незнаю как мне добраться до 'center' пропса который находится внутри опционального MapProps['state']
.
Помогите отрефакторить компонент с новой версией
Собственно
PlacemarkGeometry
,MapProps
уже недоступны.