Angular 2 http 强类型返回类型
Angular 2 http strongly typed returntype
在使用 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());
}
}
我想这就是你想要的:
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());
}
在使用 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());
}
}
我想这就是你想要的:
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());
}