在Angular中找不到声明d.ts文件的模块

时间:2018-02-21 12:50:28

标签: angular typescript leaflet typescript-typings

我试图为Leaflet.ActiveLayers编写声明文件并将其包含在Angular服务中。

声明文件如下:

import * as L from 'leaflet';
import * as ActiveLayers from 'leaflet.active-layers';

declare module 'leaflet.active-layers' {
    declare function getActiveBaseLayer();
    declare function getActiveOverlayLayers();
    declare function onAdd();
}

并在index.d.ts

中保存为node_module/@types/leaflet.active-layers

该文件包含在Angular服务中:

import { Injectable } from '@angular/core';
import * as Leaflet from 'leaflet';
import * as ActiveLayer from 'leaflet.active-layers';

declare var L: any;

@Injectable()
export class MapService {

  public activeLayer: any;

  constructor() {}
  init() {
    this.activeLayer = ActiveLayer.getActiveBaseLayer();
    console.log(this.activeLayer);
  }
}

所以我可以访问getActiveBaseLayer方法,但是服务在编译期间无法找到模块:

ERROR in ./src/main/webapp/app/leaflet/services/map-service.ts
Module not found: Error: Can't resolve 'leaflet.active-layers' in 'C:\project\src\main\webapp\app\leaflet\services'
 @ ./src/main/webapp/app/leaflet/services/map-service.ts 25:30-62
 @ ./src/main/webapp/app/leaflet/leaflet.module.ts
 @ ./src/main/webapp/app/app.module.ts
 @ ./src/main/webapp/app/app.main.ts

0 个答案:

没有答案