给出源角度服务代码
@Injectable()
export class HomeContentService {
constructor(private http: HttpClient) { }
getContent(): Observable<string> {
let fileURI = '/assets/content/home.md';
let opt = { responseType: 'text' };
return this.http.get<string>(
fileURI,
opt
);
}
致电getContent()
应该返回Observable<string>
。但是,当我运行ng serve
时,我会获得Type 'string' is not assignable to type 'json'
。
经过几次尝试,webpack似乎编译得很好而没有我做任何更改,但是当我关闭进程并再次尝试ng serve
时,问题又会再次发生。
我想我的设置responseType: 'text'
有问题,但我不知道它是什么。谷歌搜索也没有帮助。
有什么想法吗?
答案 0 :(得分:2)
尝试let opt = { responseType: 'text' as 'text' };
答案 1 :(得分:1)
您必须内联选项,因为这是TypeScript转换器可以推断您希望返回类型Observable<string>
的唯一方法。
getContent(): Observable<string> {
let fileURI = '/assets/content/home.md';
return this.http.get(fileURI, { responseType: 'text' });
}
另请参阅See code in use here,请参阅alxhub
所做的评论。
答案 2 :(得分:0)
我认为你没有指定地图。试试这个:
getContent ( ) : Observable< string > {
return this.http.get( YOUR REF )
.map((res:Response) => res.text())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
res.text中的你指定类型,如果响应是json ll是&#34; res.Json()&#34;
Sry for the bad english