Quel est le type de fichier d'enregistrement de la valeur de retour doit-je utiliser pour un $http appel qui renvoie rien d'autre que le succès?

J'ai créé un service à l'aide de la Machine:

class ConfigService implements IConfigService {

    public admin = {};
    public adminBackup = {};
    public user = {};
    public loaded = false;

    constructor(
        private $http: ng.IHttpService,
        private $q: ng.IQService
        ) {

    }

    static $inject = [
        '$http',
        '$q'
    ];

    put = ():ng.IHttpPromise<> => {
        var defer = this.$q.defer();
        if (angular.equals(this.admin, this.adminBackup)) {
            return defer.resolve();
        } else {
            this.$http({
                data: {
                    adminJSON: JSON.stringify(this.admin),
                    userJSON: JSON.stringify(this.user)
                },
                url: '/api/Config/Put',
                method: "PUT"
            })
                .success(function (data) {
                    this.adminBackup = angular.copy(this.admin);
                    this.userBackup = angular.copy(this.user)
                    return defer.resolve();
                });
        }
        return defer.promise;
    };

}

J'ai également créé cette interface:

interface IConfigService {
     put(): ng.IHttpPromise<>;
}

Toutefois, le code me donne un message d'erreur indiquant:

Error   3   Cannot convert 'void' to 'ng.IHttpPromise<any>'.    

Error   4   Cannot convert 'ng.IPromise<{}>' to 'ng.IHttpPromise<any>':
    Type 'ng.IPromise<{}>' is missing property 'success' from type 'ng.IHttpPromise<any>'.  
Lorsque vous créez votre propre différés de l'objet de sa promesse est de type ng.IPromise, fondamentalement, si vous utilisez vs et comme suggestion lorsque vous passez la souris sur une méthode particulière, il vous dira quel type il retourne et vous pouvez obtenir le type de retour. Il n'y a rien de mal à faire return defer.resolve(); parce que le retour n'est pas évaluée de toute façon, dans votre cas, puisque vous êtes de retour différé promesse de votre propre et de résolution ou son refus par vous-même, mais il est très souvent utilisé lorsque vous souhaitez court-circuit de votre instructions conditionnelles.

OriginalL'auteur Alan2 | 2014-07-26