在typeroot中声明的var不可用于声明类型

时间:2019-04-25 08:39:56

标签: angular

此后:=> GUIDE

我在输入时有一个全局变量。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'。

每次我想以某种类型使用铯时,都会向我抛出此错误。 例如,我不能让myVar:Cesium.Cartesian3但我可以

myVar = new Cesium.Cartesian3();

如果我在声明中添加“ export”,它将部分起作用,并且我必须将该文件导入到所有地方,这将使typeroot的使用无效。

什么是好的实现?

0 个答案:

没有答案