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

标签 javascript angular object typescript

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

这是数组:

categories: Category[] = [];

这是类别对象:

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

我正在尝试这样查找(值是一个字符串,例如“Wood”):

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

它说“类别”类型上不存在属性名称。

最佳答案

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

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

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

关于javascript - Angular2 & Typescript - 类型上不存在属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095786/

相关文章:

angular - 无法找到模块 './sections/lazy/lazy.module.ngfactory' Angular 2 Webpack + AOT 设置中出现错误

javascript - 在数组中存储具有属性的对象 javascript

JavaScript 与 php 亚马逊 API

javascript - 如果在下拉菜单内发生单击,则阻止下拉菜单关闭

javascript - Angular 输入范围 slider 对十进制数据绑定(bind)值进行四舍五入

javascript - 使用另一个属性值更改数组中对象的属性值

javascript - 使用javascript在不使用循环的情况下搜索对象中的数组

javascript - 为什么所有坐标都具有相同的值?

Javascript 比另一个属性上的 XSLT generate-id() 更好地识别回调节点

javascript - 如何使用 JavaScript 调用 Zillow API?