【问题标题】:What's the problem with this code in typescript? [duplicate]打字稿中的这段代码有什么问题? [复制]
【发布时间】:2021-01-24 16:28:45
【问题描述】:

我是 Angular 和 typescript 的新手,所以我观看了 youtube 视频并复制它们以了解发生了什么。 Youtube tutorial

这在我尝试订阅的组件中,就像在视频中一样。这是我收到一条错误消息的行:

错误:src/app/components/prof-btn/prof-btn.component.ts:34:43 - 错误 TS2769:没有重载匹配此调用。 Overload 1 of 5, '(observer?: NextObserver | ErrorObserver | CompletionObserver | undefined): Subscription',给出了以下错误。 '(users: User[]) => Users[]' 类型的参数不可分配给 'NextObserver |错误观察者 |完成观察者 |不明确的'。 '(users: User[]) => Users[]' 类型中缺少属性'complete',但在'CompletionObserver' 类型中是必需的。 重载 2 of 5, '(next?: ((value: Object) => void) | undefined, error?: ((error: any) => void) | undefined, complete?: (() => void) | undefined): Subscription',给出了以下错误。 '(users: User[]) => Users[]' 类型的参数不可分配给'(value: Object) => void' 类型的参数。 参数 'users' 和 'value' 的类型不兼容。 “对象”类型可分配给极少数其他类型。您的意思是改用“任何”类型吗? “Object”类型缺少“Users[]”类型的以下属性:length、pop、push、concat 等 26 个。

34 this.userService.getUsers().subscribe((users: User[]) => this.users = users);

node_modules/rxjs/internal/types.d.ts:64:5 64完成:()=>无效; 这里声明了“完成”。

ngOnInit() {this.userService.getUsers().subscribe((users: User[]) => this.users = users);}

用户服务

getUsers() {return this.webService.get('users');}

网络服务:

get(uri: string) {this.http.get(``${this.ROOT_URL}/${uri}``);}

我在这里订阅了一项将我送回的服务

程序运行正常,所以它让我得到数据,但我很好奇是什么问题?

【问题讨论】:

标签: angular typescript


【解决方案1】:
get(uri: string) {this.http.get(``${this.ROOT_URL}/${uri}``);}

应该是

get(uri: string) {return this.http.get(`${this.ROOT_URL}/${uri}`);}

您需要在您的 Web 服务的 get 方法中使用 return 语句,并且有一个错误输入错误:您有两个 `` 一个的实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 2015-04-25
    • 2018-09-09
    相关资源
    最近更新 更多