LeafScript中的LeafletJS多折线

时间:2017-11-28 23:08:42

标签: angular typescript leaflet

我试图使用http://leafletjs.com/reference-1.2.0.html#polyline

中的演示
// create a red polyline from an array of LatLng points
var latlngs = [
    [45.51, -122.68],
    [37.77, -122.43],
    [34.04, -118.2]
];
var polyline = L.polyline(latlngs, {color: 'red'}).addTo(map);
// zoom the map to the polyline
map.fitBounds(polyline.getBounds());

然而,它给我一个错误:

[ts]
Argument of type 'number[][]' is not assignable to parameter of type 'LatLngExpression[]'.
  Type 'number[]' is not assignable to type 'LatLngExpression'.
    Type 'number[]' is not assignable to type '[number, number]'.
      Property '0' is missing in type 'number[]'.
使用带有Angular / TypeScript的传单时需要

吗?

1 个答案:

答案 0 :(得分:3)

看起来你的代码很好,但类型有点挑剔。正如编译器所指出的那样,number[]不能分配给[number, number],这是完全合理的(作为空数组[]应该分配给number[]而不是[number, number]

无论如何,你所要做的就是给打字稿提示你实际上是在传递正确的类型。我建议你在变量上声明它,例如:

var latlngs: [number, number][] = [
    [45.51, -122.68],
    [37.77, -122.43],
    [34.04, -118.2]
];

或者,如果在您的实际用例中该值来自其他地方,您可以直接投射它:

var polyline = L.polyline(latlngs as [number, number][], {color: 'red'}).addTo(map);