Angular2-是否可以包含没有打字文件的库?

时间:2016-05-30 15:18:16

标签: typescript angular libraries

我正在使用角度为2的谷歌地图应用程序,现在我早些时候在vanilla javascript中做了这个。但是在那里我使用库作为RichMarkers和infoBox,现在我的问题是,是否可以在不使用输入文件的情况下包含这些(因为还没有)我尝试了definetlyTyped的infoBubble,但是它不匹配angular2-google-maps所以它会让我错误。

有没有人知道如何在没有输入文件的情况下包含库?

这是我的组件代码:

import {Component, Directive} from '@angular/core';
import {GoogleMapsAPIWrapper} from 'angular2-google-maps/core';

declare var fontawesome:any;
declare var RichMarker:any;
declare var RichMarkerPosition:any;
declare var google:any;


@Component({
    selector: 'poly-layer',
    template: '<div></div>'
})
export class PolyLayer {
    constructor(private _wrapper: GoogleMapsAPIWrapper) {
        this._wrapper.getMap().then((map) => {          

            var myLatLng = new google.maps.LatLng(-25.363882, 131.044922);
            var marker_html = '<div id="test"><div class="rich-marker"><span class="number-id">'+ 'number' + '</span></div></div>';

            var marker = new RichMarker({
                position: myLatLng,
                map: map,
                flat: true,
                anchor: RichMarkerPosition.MIDDLE,
                content: marker_html
            });



            marker.setMap(map);
        });
    }
}

在富标记索引中未定义google:RichMarker.prototype = new google.maps.OverlayView();

我该如何定义?

这是PLUNKER

This is the error

2 个答案:

答案 0 :(得分:2)

您可以使用declare foo;告诉TS编译器它可以安全地假设foo存在,并且如果您的代码引用foo则不会产生错误。

答案 1 :(得分:0)

如果您使用打字稿,只需使用任何。

constructor(restService: RestService, $state: any, FileSaver: any) {
    this.restService = restService;
    this.$state = $state;
    this.FileSaver = FileSaver;

对于restService,我使用的是一种类型,但对于$ state,我不确定它是什么,我只是使用了它 angular-file-saver也没有输入,所以我也使用了任何一种。