Angular 2 http强类型返回类型

时间:2016-04-03 08:55:28

标签: angular angular2-http

在使用TypeScript的Angular 1中,我能够创建服务,我知道哪种返回类型我会得到一个数字数组或一个Person对象:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.mukesh.airpollution"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile files('libs/jsoup-1.8.3.jar')
}

dependencies {
    compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services:8.3.0'
    compile 'com.google.maps.android:android-maps-utils:0.4+'

    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.loopj.android:android-async-http:1.4.4'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.android.support:design:23.1.1'


}

在Angular 2中,我创建了以下服务,到目前为止工作正常,但我不知道在哪里可以设置一个完全类型的返回类型,如Angular 1中的IPromise,在我的情况下是一个数组人员。

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

1 个答案:

答案 0 :(得分: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());
   }