私はこのような活字体インターフェイスしたいと思います:活字体のインターフェイスに観察可能なタイプを追加
declare namespace UserService {
interface IUserService {
// Error: "Observable" can't be found
getUsers(): Observable<Array<UserService.IUser>>;
}
interface IUser {
Id: number;
FirstName: string;
LastName: string;
}
}
を...そして、問題はそのObservable
あるこの
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>);
}
}
のようにそれを使用しますIUserService
のタイプが見つかりません。私が約束を使用してPromise
をタイプとして使用した場合、Promise
タイプが見つかりましたが、Observable
を使用します。
私はこの間違いを考えている可能性があります。私は解決策または代替案を受け入れる。
interface IUser {
Id: number;
FirstName: string;
LastName: string;
}
とあなたのサービスであなたはそれが観測配列を返すことを指定します。
は
あなたは{ 'インポートを持っていますObservable} from 'rxjs/Observable'; '宣言前の名前空間UserService {'? –
@TuongLeこのようなインタフェースでのインポートは機能しません。 –