如何使用Typescript为$ http调用指定返回类型?

时间:2014-07-25 19:17:24

标签: angularjs typescript

到目前为止,这是我的功能。我已经为两个输入参数添加了一个接口,但由于编码的方式,我真的不知道如何处理返回参数:

function httpGetQuestion(q: ITestQuestion, action: string) {
    return $http({
        url: '/api/Question/GetByUId/' + q.questionUId + '/' + action,
        method: "GET"
    })
}

也:

httpGetQuestion(q, 'fetch')
    .success(function (data) {

以下是从$ http调用返回的数据:

    public class Q
    {
        public string Answer { get; set; }
        public string Text { get; set; }
    }

2 个答案:

答案 0 :(得分:2)

你可以内联:

function httpGetQuestion(q: ITestQuestion, action: string) : ng.IHttpPromise<Q> {

答案 1 :(得分:1)

您可以使用返回值的输入作为ng.IHttpPromise: - 使用和接口为您的服务,并添加接口作为依赖键入,并在您的接口方法上添加注释(JSDoc)将为您提供良好的智能感知提供有关该方法的描述和其他信息。

这样的事情: -

export interface IMyService{
        /**
         * Returns promise which will resolve to .....
         * @returns {ng.IHttpPromise<Q>}
         */
        httpGetQuestion(q: ITestQuestion, action: string) : ng.IHttpPromise<Q>;
}


class MyService implements IMyService{

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

    }

  .....    

   httpGetQuestion(q: ITestQuestion, action: string) {
     return this.$http({
        url: '/api/Question/GetByUId/' + q.questionUId + '/' + action,
        method: "GET"
     });
   }

 ....

}