1

在带有 TypeScript 的 Angular 1 中,我能够创建服务,我知道我会得到哪种返回类型,比如数字数组或人对象:

public addAges(ages: number[]) : ng.IPromise<number[]> { 
    return this.$http.post('Proxy/AddAges',ages)
                     .then((response: ng.IHttpPromiseCallbackArg<number[]>) : number[] 
                         => { return response.data; });
} 

在 Angular 2 中,我创建了以下服务,到目前为止它运行良好,但我不知道我可以在哪里设置一个完全类型化的返回类型,就像在 Angular 1 中使用 IPromise 和在我的情况下是一个人员数组一样。

import {Injectable} from 'angular2/core';
import {Http, Response} from 'angular2/http';
import {Person} from './../customDataClasses/Person'
import 'rxjs/add/operator/map'; 

@Injectable()
export class CourseService {
   constructor(private _http: Http) { }
   getPersons(name:string)  {
       return this._http.get(`Home/GetPersons?name=${name}`)
                          .map((res : Response) => res.json());
   }
}
4

1 回答 1

2

我想这就是你想要的:

import { Observable } from 'rxjs/observable';
import 'rxjs/add/operator/map';

...

   getPersons(name:string):Observable<number[]>  {
       return this._http.get(`Home/GetPersons?name=${name}`)
                          .map((res : Response) => res.json());
   }
于 2016-04-03T08:58:06.080 回答