Этот вопрос возник аналогичным образом во многих местах, где решение состоит в том, чтобы просто добавить
import { } from '@types/googlemaps';
который работал как решение в прошлой версии angular. Проблема появилась сейчас, когда я использую Angular 6+
TS2304: Cannot find name 'google'.
TS2503: Cannot find namespace 'google'.
Существует множество подобных ошибок, но они встречаются в каждой строке, например:
let place: google.maps.places.PlaceResult = autocomplete.getPlace();
Я могу быстро исправить проблему, вставив // @ts-ignore
над всеми строками, в которых используются карты Google, но я гораздо больше заинтересован в истинном исправлении. Но тот факт, что это работает, заставляет меня почувствовать проблему tsconfig, в которой я не очень уверен.
Я могу подтвердить, что googlemaps установлен внутри node_modules/@types, но
ts.config
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"typeRoots": [
"node_modules/@types",
],
"lib": [
"es2017",
"dom"
]
}
}
Я создал пример Stackblitz, который выдает ошибку ссылки, если вы просматриваете консоль. Я не знаю, что попробовать дальше.