У меня был проект angular в angular 8, который я решил обновить до angular 9. Все выглядит нормально, но у меня проблема с компиляцией.
У меня был global.d.ts
в папка sr c моего проекта, в которой был некоторый тип для библиотек, объявленных в глобальной области:
import * as Cesium from "cesium";
import * as Hls from "hls.js";
declare global {
var Cesium: typeof Cesium;
var Hls: typeof Hls;
}
Проблема, с которой я столкнулся сейчас, заключается в том, что при компиляции каждая строка, в которой я использую это глобальное окно тип теперь не работает
src / main.ts: 12: 1 - ошибка TS2304: не удается найти имя «Цезий».
Как я могу это исправить? В Visual Code автодополнение правильное, но при компиляции он их не находит.
Я тоже пробовал
import * as Cesium from "cesium";
import * as Hls from "hls.js";
declare global {
interface Window {
Cesium: typeof Cesium;
Hls: typeof Hls;
}
}
но ничего
Файл добавлен в tsconfig
"compilerOptions": {
"typeRoots": ["node_modules/@types", "./src/global.d.ts"],
}
main.ts
import { enableProdMode } from "@angular/core";
import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
import { AppModule } from "./app/app.module";
import { environment } from "./environments/environment";
if (environment.production) {
enableProdMode();
}
// Needed to initialize Cesium
Cesium.buildModuleUrl.setBaseUrl("/assets/cesium/");
platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch((err) => console.error(err));
tsconfig.app. json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"resolveJsonModule": true,
"outDir": "../out-tsc/app",
},
"files": ["main.ts", "polyfills.ts"],
"include": ["src/**/*.d.ts"]
}
Тип экспортируется следующим образом https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/cesium/index.d.ts