加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 应该使用什么类型的Typescript返回值用于返回除成

发布时间:2020-12-17 07:46:44 所属栏目:安全 来源:网络整理
导读:我使用Typescript创建了一个服务: class ConfigService implements IConfigService { public admin = {}; public adminBackup = {}; public user = {}; public loaded = false; constructor( private $http: ng.IHttpService,private $q: ng.IQService ) {
我使用Typescript创建了一个服务:
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;
    };

}

我也创建了这个界面:

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

但是代码给我一个错误说:

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>'.
使用
ng.IPromise<void>

另外,如果您不声明返回类型并且不使用该接口,那么您可以隐式地为其输入.

这里也不应该有返回语句:

return defer.resolve();

只是:

defer.resolve();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读