“字符串”类型的参数不能分配给“自定义类型”类型的参数

时间:2019-04-24 09:45:00

标签: angular typescript

我现在正在使用Angular官方网站的教程来学习Angle。

我不知道如何将字符串变量添加到Hero [](这是我的自定义类型)

heroes.component.ts

import { Hero } from '../hero';

heroes: Hero[];

test(heroname: string) {
    // this.heroes.id = 1;
    if (heroname) {
        console.log(heroname);
        this.heroes.push(heroname);
    }
}

heroes.component.html

<form>
    <label>name:
    <input #hero placeholder="name">
  </label>
  <button (click)="test(hero.value); hero.value=''" >test</button>
  <label *ngFor ="let heroh of heroes">
      <p>hero: {{heroh}}</p>
  </label>
</form>

hero.ts

export class Hero {
  id: number;
  name: string;
}

我们将不胜感激任何帮助。

3 个答案:

答案 0 :(得分:0)

this.heroes.push({id: 1, name: heroname});

您还应该初始化heroes数组:

heroes: Hero[] = [];

答案 1 :(得分:0)

将其更改为界面

 export interface hero 
{

id:number;
name:string;
}

当您为可变英雄使用HERO []类型的界面时; 它将接受具有ID和名称组合的对象;

所以你应该推动 this.heroes.push({id:1,name:heroname})

答案 2 :(得分:-1)

您可以仅将heroes个对象推入hero数组中。

英雄对象应该看起来像这样{id: 1, name: 'heroName'})

您应该像这样初始化数组的值:

  heroes: Hero[] = [];