在angular中找不到命名空间

时间:2019-04-11 04:07:02

标签: angular

此后:=> https://cesium.com/blog/2018/03/12/cesium-and-angular/

我在输入时有一个全局变量。d.ts=>

declare var Cesium;

我的tsConfig包含=>

"typeRoots": [
  "node_modules/@types",
  "./src/typings.d.ts"
],

现在,在我的指令中,我有以下内容

import { Directive, ElementRef, OnInit, Input, Output} from '@angular/core';
import * as CesiumLib from '../libs/cesium.lib';

@Directive({
  selector: '[appCesium]'
})
export class CesiumDirective implements OnInit {
  @Input() appCesiumOptions: CesiumLib.CesiumViewerOptions;
  @Output() appCesiumViewer: Cesium.Viewer;

  constructor(private el: ElementRef) {
    Cesium.Ion.defaultAccessToken = CesiumLib.CESIUM_ACCESS_TOKEN;
  }

  ngOnInit() {
    const appCesiumViewer = new Cesium.Viewer(this.el.nativeElement, this.appCesiumOptions);
  }
}

线

const appCesiumViewer = new Cesium.Viewer

工作正常,没有错误,但行

@Output() appCesiumViewer: Cesium.Viewer;

给我以下内容

  

找不到命名空间'Cesium'。

我也尝试构造一个结构,但是我有相同的错误

我在做什么错?

2 个答案:

答案 0 :(得分:0)

导出已声明的模块

export declare var Cesium;

答案 1 :(得分:0)

以下内容对我有用。

首先,例如安装软件包。

npm install moment --save

然后,要解决缺少适当的导出的问题:

从*时刻开始导入*;

注意:import * as moment from 'moment';格式很重要

import * as aliasname from 'packagename';