打字可写对象的打字稿

时间:2015-06-11 09:43:49

标签: javascript angularjs typescript factory

我想在typescript中编写一个可调用的函数。

预期的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中做同样的事情,我该怎么做?

还有更好的方法来使用typescript类来编写它吗?

1 个答案:

答案 0 :(得分:0)

  

如果我需要在angular.service中做同样的事情,我该怎么做?

只需使用课程

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