Я использую библиотеку реагировать-google-maps для API карт Google.Согласно документации, вот как я использую карты:
const GoogleMapComponent: React.ComponentClass<{}> = compose(
withProps({
googleMapURL: "url",
loadingElement: <div style={{ height: `100%` }} />,
containerElement: <div style={{ height: `400px` }} />,
mapElement: <div style={{ height: `100%` }} />,
}),
withScriptjs,
withGoogleMap
)((props) => {
const {data} = props;
return(
<GoogleMap
defaultZoom={9}
defaultCenter={{ lat: -34.397, lng: 150.643 }}
>
<HeatmapLayer />
</GoogleMap>
)
}
);
Проблема здесь в том, что когда я использую этот компонент, мне нужно передать данные «prop», если console.log (props) я могу видеть, что моя информация пропущенаобычно, но так как я использую машинописный текст, машинописный текст теперь не относится к этой опоре, он выдает мне такую ошибку:
Property 'data' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<{}, ComponentState, any>> & Readonly<{
По сути, я создаю интерфейс для этого и объявляю свою подпорку данных, а также создаю компонент реагирования следующим образом:
const GoogleMapComponent: React.ComponentClass<IProps>
Тогда я могу получить доступ к необходимым реквизитам.Проблема здесь, если я пытаюсь передать интерфейс IProps, я получаю это:
Type '{ children?: ReactNode; }' has no property 'data' and no string index signature.
Я полагаю, что это из-за метода compose.
Я думаю, здесь вопрос больше в том, чтобы отреагировать на библиотеку google-maps и ее использование с Typescript, как я считаю, должно работать в любом другом случае.Но может быть и нет, может быть есть хитрость в объявлении моего компонента другим способом.