Aar*_*zar 3 typescript angular
我想制作一个这样的 TypeScript 界面:
declare namespace UserService {
interface IUserService {
// Error: "Observable" can't be found
getUsers(): Observable<Array<UserService.IUser>>;
}
interface IUser {
Id: number;
FirstName: string;
LastName: string;
}
}
Run Code Online (Sandbox Code Playgroud)
...然后像这样使用它
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map'
@Injectable()
export class UserService implements UserService.IUserService {
private usersUrl = 'http://localhost:12345/api/users';
constructor(private http: Http) {}
public getUsers(): Observable<Array<UserService.IUser>> {
return this.http.get(this.usersUrl).map(response => response.json() as Array<UserService.IUser>);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是找不到中的Observable类型IUserService。如果我使用 Promises 并Promise用作Promise类型,则找到该类型,但我想使用Observable.
我可能在考虑这个错误。我会接受解决方案或替代方案。
谢谢
为什么不只拥有你的界面:
interface IUser {
Id: number;
FirstName: string;
LastName: string;
}
Run Code Online (Sandbox Code Playgroud)
并在您的服务中指定它将返回一个 Observable 数组。
public getUsers(): Observable<IUser[]> { // will return Observable!
return this.http.get(this.usersUrl).map(response => response.json());
}
Run Code Online (Sandbox Code Playgroud)
这将返回一个 ObservableIUser数组 :)
然后implements从以下位置删除:
export class UserService implements UserService.IUserService {
Run Code Online (Sandbox Code Playgroud)
只是:
export class UserService {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7768 次 |
| 最近记录: |