Как исправить ошибку типа в Angular Google Maps? - PullRequest
0 голосов
/ 18 июня 2019

Я использую Angular Google Maps в своем приложении, но я не могу использовать google.maps.places.PlaceResult в качестве типа важной переменной в моем коде.


Я реализую этот код: (Прокрутите вниз доДобавить панель поиска мест / мест)

https://www.freakyjolly.com/angular-7-6-add-google-maps-in-angular-2-plus-applications-using-angular-google-maps-module-agm-core-easily/

Я выполняю поиск мест на карте и получаю эту ошибку:

enter image description here

В этом коде:

ngOnInit() {
    // Load places autocomplete
    this.maps.load().then(() => {
      this.setCurrentLocation();
      this.geoCoder = new google.maps.geoCoder;

      let autocomplete = new google.maps.places.autocomplete(this.searchElementRef.nativeElement, {
        types: ["address"]
      });

      autocomplete.addListener("place_changed", () => {
        this.ngZone.run(() => {
          // Get the place result
          let place: google.maps.places.PlaceResult = autocomplete.getPlace();

          // Verify result
          if (place.geometry === undefined || place.geometry === null) {
            return;
          }

          // Set latitude, longitude & zoom
          this.userLat = place.geometry.location.lat();
          this.userLng = place.geometry.location.lng();
          this.zoom = 12;
        });
      });
    });
  }

Я просто следую примеру, но, похоже, он не распознает google.Как это исправить?

Я предполагаю использовать пример в ссылке, как есть, но не могу.

Заранее спасибо!

1 Ответ

0 голосов
/ 25 июня 2019

Чтобы решить эту проблему, вам нужно добавить файл с именем google-maps.d.ts в корневую папку внутри папки с именем types.

Затем в этот файл добавить следующий код:

google-maps.d.ts

import '@types/googlemaps';

declare global {
    interface Window {
        google: typeof google;
    }
}

Это позволит вам присвоить переменным тип в машинописи типа google.X.X.Убедитесь, что в вашем проекте установлены типы npm install --save @types/googlemaps.

Кроме того, убедитесь, что вы добавили types в ваш файл tsconfig.json, чтобы указать ему папку с кодом:

tsconfig.json

// tsconfig.json
compilerOptions: {
   ...
   "typeRoots": [
     "node_modules/@types",
     "types"
   ],
   ...
}

Откуда я получил ответ (прокрутите вниз до второго ответа feilxmosh с 3 ответами):

Как установить типизацию шрифтов для карт Google

Кредит отправляется @JensHabegger за отправку мне этой ссылки.Я ответил на свой вопрос, потому что Дженс Хабеггер не ответил.

...