gpt4 book ai didi

javascript - Angular2 解析 Promise 时出错 : Type 'Promise' is no t assignable to type 'Hero[]'

转载 作者:太空宇宙 更新时间:2023-11-04 15:37:22 27 4
gpt4 key购买 nike

已更新。

我正在关注 Angular2 教程 https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

这里是从heres.component.ts调用HeroService,

Heroes.component.ts

import { Component , OnInit } from '@angular/core';

import { Hero } from './hero';

import { HeroService } from './hero.service';



@Component({
selector: 'my-heroes',
template: `


<h2>My Heroes</h2>
<ul class="heroes">
<li *ngFor="let hero of heroes">
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
</ul> `,

})

export class HeroesComponent implements OnInit {
title = 'Tour of Heroes';
heroes: Hero[];
selectedHero: Hero;

constructor(private heroService : HeroService ){

}

getHeroes(): void{
this.heroService.getHeroes().then(heroes => this.heroes = heroes);
}

ngOnInit(): void{
this.getHeroes();
}


}

以及在 HeroService 中编写的 getHeroes() 调用

HeroService.ts

import { Injectable } from '@angular/core';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';

@Injectable()
export class HeroService{
getHeroes() {
return Promise.resolve(HEROES);
}
}

我收到以下编译时错误:

错误 TS2322:类型“Promise”无法分配给类型“Hero[]”。 “Promise”类型中缺少属性“length”。

请提出建议。

最佳答案

heroes: Hero[]; 更改为 heroes: any; 可以解决该问题,但控制台会返回错误,因为 ngFor 仅支持可迭代。最后,代码编译并运行应用程序,但我发现有一个小问题造成干扰。

关于javascript - Angular2 解析 Promise 时出错 : Type 'Promise<Hero[]>' is no t assignable to type 'Hero[]' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44202862/

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