gpt4 book ai didi

angular - 将 Observable 类型添加到 TypeScript 接口(interface)

转载 作者:行者123 更新时间:2023-12-04 01:48:30 25 4
gpt4 key购买 nike

我想做一个这样的 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>);
}
}

问题是 Observable输入 IUserService没有找到。如果我使用 Promises 并使用 Promise作为类型然后 Promise找到类型但我想使用 Observable .

有可能我在想这个错误。我会接受解决方案或替代方案。

谢谢

最佳答案

为什么不只是有你的界面:

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

并在您的服务中指定它将返回一个可观察数组。
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  {

关于angular - 将 Observable 类型添加到 TypeScript 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42102231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com