我使用这个种子开始使用 Angular 2 Typescript 和 Webpack:https ://github.com/haoliangyu/angular2-leaflet-starter 。
我对大多数使用的工具和技术(Angular 2、Typescript、Webpack)都很陌生。虽然我对这些了解越来越多,但似乎我仍然没有掌握如何包含第三方非类型化 JS 库:
我想将leaflet-routing-machine.js包含到我的项目中。据我所知,虽然传单确实存在分型,但传单路由机不存在分型。
我通过安装包npm install
并添加了所需的快速启动代码,以显示路线。
地图服务.ts
/// <reference path="../../typings/leaflet/leaflet.d.ts"/>
import {Injectable} from 'angular2/core';
import {Map} from 'leaflet';
Injectable()
export class MapService {
map: Map; // holds reference to the normal leaflet map object
showRoute(){
L.Routing.control({
waypoints: [
L.latLng(47.569198, 7.5874886),
L.latLng(47.5685418, 7.5886755)
]
}).addTo(this.map);
}
}
我遇到的错误npm start
是:
ERROR in ./app/services/map.service.ts
(56,11): error TS2339: Property 'Routing' does not exist on type 'typeof L'.
据我了解,我不应该在 index.html 中包含 JS 文件,因为这应该由 webpack 自动完成。除了我通常不确定如何在没有打字的情况下包含第三方库(这样的答案没有帮助)这一事实之外,我的情况似乎有点不同,因为L
Object 是标准传单并且不知道该Routing
属性。我以某种方式理解,因为我看不到路由机器库如何扩展传单库。
有什么建议么?