簡體   English   中英

將 Observable 類型添加到 TypeScript 接口

[英]Adding the Observable type to TypeScript Interface

我想制作一個這樣的 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;
    }
}

...然后像這樣使用它

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中的Observable類型。 如果我使用 Promises 並使用Promise作為類型,則找到Promise類型但我想使用Observable

我可能在考慮這個錯誤。 我會接受解決方案或替代方案。

謝謝

為什么不只擁有你的界面:

interface IUser {
    Id: number;
    FirstName: string;
    LastName: string;
}

並在您的服務中指定它將返回一個 Observable 數組。

public getUsers(): Observable<IUser[]> { // will return Observable!
    return this.http.get(this.usersUrl).map(response => response.json());
}

這將返回一個IUser數組的 Observable :)

然后從以下位置移除implements

export class UserService implements UserService.IUserService {

只是:

export class UserService  {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM