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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |