Угловой сервис в машинописи с внедрением и минимизацией зависимостей

На данный момент я пытаюсь разобраться в угловых. В настоящее время я просматриваю службы, которые также используют typescript для кода.

Теперь из образцов в Интернете я видел, что люди используют что-то вроде ниже для службы в typescript.

class Service
{
    constructor( private $http: ng.IHttpService )
    {
    }

    public MyMethod()
    {
        this.$http.get( "/" )
            .success( null )
            .error( null );
    }
}

Теперь, если это уменьшено, я потеряю $http от конструктора, а angular потребует имена переменных. Поэтому я проверил и обнаружил, что я могу использовать $injection вместо конструктора, но это также будет иметь ту же проблему минимизации.

Как люди справляются с минимизацией и angular в контексте typescript? Я изо всех сил пытаюсь найти твердые документы о том, как это следует обрабатывать. Мне кажется странным иметь эти проблемы в современной api, поэтому мне что-то не хватает где-то.

Ответ 1

Просто используя синтаксис $inject. например:

class Service
{
    static $inject = ['$http'];    
    constructor( private $http: ng.IHttpService )
    {
    }

    public MyMethod()
    {
        this.$http.get( "/" )
            .success( null )
            .error( null );
    }
}

PS: Я сделал подробное видео по теме: http://www.youtube.com/watch?v=WdtVn_8K17E&hd=1

Ответ 2

В настоящее время официальный компилятор TypeScript по-прежнему не выделяет метаданные интерфейса, которые могут использоваться во время выполнения для системы DI. Существует проблема с расширяемостью emitter здесь. Тем временем я создал образец проекта (наряду с настраиваемой версией TS-компилятора, который испускает метаданные интерфейса) приложения AngularJS 1.3, которое предоставляет Decorators для регистрации компонентов в модуле приложения и ввода зависимостей с использованием метаданных класса во время выполнения. Вы можете посмотреть здесь.