gpt4 book ai didi

javascript - Typescript 无效的左手运算符

转载 作者:行者123 更新时间:2023-12-03 05:21:36 27 4
gpt4 key购买 nike

我是 typescript 新手,我正在遵循教程 Tour of heroes from angular page在本教程的最后一章中,当我尝试通过以下代码使用 HTTP 时

尽管我从 typescript 编译器收到此错误,但一切运行正常。

enter image description here

问题是由于此错误,我必须刷新浏览器,因为 browsersync 由于错误而未同步。

有人可以帮助我吗?

下面是代码

Hero.service.ts

import { HEROES }from './mock.heroes';
import { Hero } from './hero';
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';

@Injectable()
export class HeroService {
url: string;
constructor(private http: Http){
this.url = "http://jsonplaceholder.typicode.com/users";
this.http = http;
}
getHeros(): Promise<Hero[]> {
if(!HEROES || HEROES.length == 0) {
return this.http.get(this.url)
.toPromise()
.then(response => {
HEROES = response.json();
});
} else {
let promise: Promise<Hero[]> = new Promise<Hero[]>(function(resolve, reject){
resolve(HEROES);
});
return promise;
}
}
}

mock.heroes.ts

import { Hero } from './hero';
export var HEROES: Hero[];

最佳答案

您声明了 HERO 数组类型的 HEROES,但为其分配了 Json。

你需要转换结果

HEROES = <HERO[]>response.json()

我宁愿建议循环响应数据并通过它构建 HERO 数组,如果 HERO 类中有任何函数,请使用 Object.assign

关于javascript - Typescript 无效的左手运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41355865/

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