当我具有正确的格式时,我收到“类型'string []'无法分配给类型'string'”的信息

时间:2019-04-21 01:14:42

标签: angular typescript 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]);
          }
        }
      });

但是线路类型:['mosque']正在返回

“类型'string []'无法分配给类型'string'.ts(2322) index.d.ts(2801,7):预期的类型来自属性'type',该属性在此处声明为类型'PlaceSearchRequest'“

使用可视代码,不要让我运行这个离子项目。谁能帮我?我查看了Google Places API文档,似乎也拥有正确的格式和类型。

我在 角度的:4.1 离子性:3

1 个答案:

答案 0 :(得分:0)

所以我在上面解决了我的问题。

为上述代码尝试运行的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]);
          }
        }
      });