reactjs - TypeScript React Google Maps: 'google' eksisterer ikke
Jeg har lastet inn Google Maps Javascript API i public/index.html, og i utviklerverktøyets konsoll kan jeg logge window.google.maps helt fint.
Men TypeScript vet ikke at det er der, og jeg får denne feilen Property 'google' does not exist on type 'Window & typeof globalThis'.ts(2339) Hvordan sier jeg til TypeScript at det eksisterer?
import React, { useRef } from "react";
function Map() {
const mapRef = useRef<HTMLDivElement>(null);
const google = window.google;
// ^ Error: Property 'google' does not exist on type 'Window & typeof globalThis'
const myLatlng = new google.maps.LatLng(-34.397, 150.644);
const mapOptions = {
zoom: 8,
center: myLatlng,
};
const map = new google.maps.Map(mapRef.current, mapOptions);
return (<div ref={mapRef}></div>);
}
export { Map };
Svar #1
Google anbefaler å ha ts.config.json med denne innstillingen.
https://developers.google.com/maps/documentation/javascript/using-typescript
{
"compilerOptions": {
"types": ["google.maps"]
}
}
I roten av prosjektet ditt må du opprette ts.config.json og legge til den egenskapen. Slik oppretter du ts.config.json:
npx tsc --init
Svar #2
Jeg tenkte på dette litt mer. Hvis du ikke har installert Google Map-typene fra DefinitelyTyped, foreslår jeg å gjøre det:
npm install --save @types/googlemaps. (Eller --save-dev hvis du bare vil ha dem for din egen utvikling.)
