Чтобы сделать какой-либо модуль глобальным пространством имен в TypeScript, я обычно делаю:
// global.d.ts
import * as _uirouter_ from '@uirouter/angularjs';
export as namespace ui; // Now `ui` is custom global namespace
export = _uirouter_;
Однако angular-animate
не работает с вышеуказанным способом. Я считаю, что это из-за определения типа: Ссылка
// angular-animate/index.d.ts
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/angular-animate/index.d.ts
declare var _: string;
export = _;
import * as angular from 'angular';
declare module 'angular' {
/**
* ngAnimate module (angular-animate.js)
*/
namespace animate {
...
Как мы видим, создание глобального пространства имен невозможно из-за строки export = _;
, которая является просто строкой.
Как мне создать файл определения для angular-animate
? Я бы хотел сделать:
function Foo($animateCss: customGlobalName.IAnimateCssService) {
...
}
где customGlobalName.IAnimateCssService
совпадает с angular.animate.IAnimateCssService
.