Как сделать `angular -animate` (подмодуль) глобальным пространством имен в TypeScript? - PullRequest
0 голосов
/ 07 мая 2020

Чтобы сделать какой-либо модуль глобальным пространством имен в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...