Возможно, вы захотите взглянуть на глобальные определения . Я почти уверен, что именно так библиотеки типа angular делают ng.ITimeoutService
. Однако вам может понадобиться ваше собственное пространство имен, как показано ниже.
/*~ If your library has properties exposed on a global variable,
*~ place them here.
*~ You should also place types (interfaces and type alias) here.
*/
declare namespace myLib {
//~ We can write 'myLib.timeout = 50;'
let timeout: number;
}
Редактировать
Похоже, вы можете добавить класс global
в файл types.d.ts
. Я использую typescript 3.8.3
в VSCode.
Вот мой types.d.ts
// This is accesible anywhere now
declare class Aaaaa {
myFunction();
}
Вот мой tsconfig.json
{
"compilerOptions": {
"outDir": "dist",
"module": "es2015",
"moduleResolution": "node",
"target": "es5",
"lib": ["es6", "es2016", "dom"],
"baseUrl": "src",
"preserveConstEnums": true,
"sourceMap": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"typeRoots": ["node_modules/@types", "src/types.d.ts"]
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}
Предупреждение: глобальные типы не являются хорошая идея (должен быть последним вариантом). Кроме того, в глобальном классе не может быть инициализаторов, поэтому реализация должна загружаться глобально где-то еще (обычно с помощью тегов скрипта в браузере).