Typescript rxjs在使用HttpClient时的困惑

Typescript rxjs在使用HttpClient时的困惑,typescript,rxjs,angular-httpclient,Typescript,Rxjs,Angular Httpclient,我正在尝试使用http.get的类型化版本。如何获取要添加到此.rowData的类型化数组? 下面的c参数是数组本身: this.rowData = this.courseProvider.getCourses().map(c => new Course(c)); //course.provider.ts import 'rxjs/add/operator/share'; import 'rxjs/add/operator/mergeMap'; import { Injectable }

我正在尝试使用http.get的类型化版本。如何获取要添加到此.rowData的类型化数组? 下面的c参数是数组本身:

this.rowData = this.courseProvider.getCourses().map(c => new Course(c));
//course.provider.ts

import 'rxjs/add/operator/share';
import 'rxjs/add/operator/mergeMap';
import { Injectable } from '@angular/core';
import { Api } from '../api/api';
import { Course } from '../../models'

@Injectable()
export class CourseProvider 
{
    course: Course;

    constructor(public api: Api)
    {
    }

    getCourses()    {
        let observable = this.api.get<Course[]>('courses');

        observable.subscribe((courses: Course[]) => {
        }, err => {
            console.error('ERROR', err);

            throw err;
        });

        return observable;
    }
}
//api.ts

import { HttpClient, HttpParams, HttpHeaders, HttpEvent } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

@Injectable()
export class Api {
    url: string = 'http://192.168.0.2:39049/Services/api';

    get<T>(endpoint: string, params?: any, reqOpts?: any) : Observable<T> {

        if (!reqOpts) 
        {
            reqOpts = this.getHeaders();
        }

        return this.http.get<T>(this.url + '/' + endpoint, {
            headers: reqOpts
        });
    }
}
从'@angular/common/http'导入{HttpClient,HttpParams,HttpHeaders,HttpEvent};
从“@angular/core”导入{Injectable};
从“rxjs”导入{Observable};
@可注射()
导出类Api{
url:string='1〕http://192.168.0.2:39049/Services/api';
get(端点:字符串,参数?:任意,请求?:任意):可观察{
如果(!REQUOPTS)
{
reqOpts=this.getHeaders();
}
返回此.http.get(this.url+'/'+端点{
标题:请求选项
});
}
}

类型提示不会导致任何类型转换或转换。感谢jonrsharpe的回复,可能是重复的。如何实现类型化数组?我也尝试过rxjs映射操作符,但没有成功。因此,请给出一个例子,“没有成功”并不是一个非常具体的问题。上面的代码封装在一个名为getCourses的函数中。调用代码如下:this.rowData=this.courseProvider.getCourses().map(c=>newcourse(c));c是一个数组,不是单个实例。
import { HttpClient, HttpParams, HttpHeaders, HttpEvent } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

@Injectable()
export class Api {
    url: string = 'http://192.168.0.2:39049/Services/api';

    get<T>(endpoint: string, params?: any, reqOpts?: any) : Observable<T> {

        if (!reqOpts) 
        {
            reqOpts = this.getHeaders();
        }

        return this.http.get<T>(this.url + '/' + endpoint, {
            headers: reqOpts
        });
    }
}