此后:=> 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的使用无效。
什么是好的实现?