打字稿写一个可调用对象
Typescript writing a callable object
我想用打字稿写一个可调用的函数。
预期 Javascript:-
app.factory('customLoader', function ($http, $q) {
return function (options) {
var deferred = $q.defer();
var data = {
'TEXT': 'Fooooo'
};
return deferred.resolve(data);
};
});
我的打字稿解决方案。
export interface LoadContent {
(options:any):ng.IPromise<any>;
}
export function LoaderService($q:ng.IQService):LoadContent {
return (options:any) => {
var deferred = $q.defer();
var data = {
'TEXT': 'Fooooo'
};
deferred.resolve(data);
return deferred.promise;
}
}
app.factory('customLoader', LoaderService);
我打算用angular.factory来初始化它。如果我需要在 angular.service 中做同样的事情,我该怎么做?
还有没有更好的方法使用打字稿来写这个class?
If I need to do the same thing in angular.service, how would I do this?
只需使用一个class
export class LoaderService {
constructor(public $q:ng.IQService){ }
getOptions(options:any) {
var deferred = this.$q.defer();
var data = {
'TEXT': 'Fooooo'
};
deferred.resolve(data);
return deferred.promise;
}
}
app.service('customLoader', LoaderService);
关于此模式的更多信息:https://www.youtube.com/watch?v=Yis8m3BdnEM
我想用打字稿写一个可调用的函数。
预期 Javascript:-
app.factory('customLoader', function ($http, $q) {
return function (options) {
var deferred = $q.defer();
var data = {
'TEXT': 'Fooooo'
};
return deferred.resolve(data);
};
});
我的打字稿解决方案。
export interface LoadContent {
(options:any):ng.IPromise<any>;
}
export function LoaderService($q:ng.IQService):LoadContent {
return (options:any) => {
var deferred = $q.defer();
var data = {
'TEXT': 'Fooooo'
};
deferred.resolve(data);
return deferred.promise;
}
}
app.factory('customLoader', LoaderService);
我打算用angular.factory来初始化它。如果我需要在 angular.service 中做同样的事情,我该怎么做?
还有没有更好的方法使用打字稿来写这个class?
If I need to do the same thing in angular.service, how would I do this?
只需使用一个class
export class LoaderService {
constructor(public $q:ng.IQService){ }
getOptions(options:any) {
var deferred = this.$q.defer();
var data = {
'TEXT': 'Fooooo'
};
deferred.resolve(data);
return deferred.promise;
}
}
app.service('customLoader', LoaderService);
关于此模式的更多信息:https://www.youtube.com/watch?v=Yis8m3BdnEM