我试图使用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的传单时需要吗?
答案 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);