Я получаю сообщение «Тип ‘string []’ не может быть присвоен типу ‘string'», когда у меня правильный формат

#angular #typescript #ionic-framework #ionic3

#angular #машинопись #ionic-framework #ionic3

Вопрос:

Пытаюсь запустить следующий код:

       var service = new google.maps.places.PlacesService(this.map);
      service.nearbySearch({
        location: {lat: resp.coords.latitude, lng: resp.coords.longitude},
        radius: 10000,
        type: ['mosque']
      }, (results,status) => {
        if (status === google.maps.places.PlacesServiceStatus.OK) {
          for (var i = 0; i < results.length; i  ) {
            this.createMarker(results[i]);
          }
        }
      });
  

но возвращается тип строки: [‘мечеть’]

«Тип ‘string[]’ не может быть присвоен типу’string’.ts(2322) index.d.ts(2801, 7): ожидаемый тип берется из свойства ‘type’, которое объявлено здесь в типе ‘PlaceSearchRequest'»

в визуальном коде и не позволяет мне запускать этот ионный проект. Кто-нибудь может мне помочь? Я проверил документацию Google places API, и, похоже, у меня тоже правильный формат и тип.

Я нахожусь на angular: 4.1 Ионный: 3

Комментарии:

1. Помещение строки ‘mosque’ в скобки [] превращает ее в массив вместо строки. Попробуйте убрать скобки и посмотреть, поможет ли это.

Ответ №1:

Итак, я решил свою проблему выше..

Оказывается, интерфейс для PlaceSearchRequest, из которого пытается выполнить приведенный выше код https://developers.google.com/maps/documentation/javascript/reference/places-service#PlaceSearchRequest

итак, исходя из этого, вам просто нужно определить строку, а не список. Я предполагаю, что ранее у старого API был список в качестве точки входа, поскольку, похоже, его использовал учебник, за которым я следую.

Итак, мой правильный код:

       var service = new google.maps.places.PlacesService(this.map);
      service.nearbySearch({
        location: {lat: resp.coords.latitude, lng: resp.coords.longitude},
        radius: 10000,
        type: ['mosque']
      }, (results,status) => {
        if (status === google.maps.places.PlacesServiceStatus.OK) {
          for (var i = 0; i < results.length; i  ) {
            this.createMarker(results[i]);
          }
        }
      });
  

Комментарии:

1. Код выглядит идентично вашему вопросу? Что изменилось? Вы имели в виду, что это должно быть type: 'mosque' вместо type: ['mosque'] ?