Angular2& Typescript - 类型上不存在属性名称

时间:2017-05-21 10:31:28

标签: javascript angular object typescript

使用find的this question的建议答案在Typescript中不起作用,它无法编译。我看过其他类似的问题,但它们在某种程度上看起来有点不同(背景)。

这是数组:

categories: Category[] = [];

这是Category对象:

export class Category{
  constructor(
    id: string,
    name: string,
    category_types: Object[]
  ) {}
}

我试图找到这样的(值是一个字符串,例如'Wood'):

let a = this.categories.find(v => v.name === value);

它表示“类别”类型中不存在属性名称。

1 个答案:

答案 0 :(得分:4)

这是因为您的班级Category没有任何属性。您可以定义parameter properties以直接从构造函数参数创建属性:

export class Category{
  constructor(
    public id: string,
    public name: string,
    public category_types: Object[]
  ) {}
}

现在Category的所有参数也是它的公共属性。