什么是快速而肮脏的扩展/分配?

时间:2018-08-25 10:33:47

标签: typescript

能否请您解释以下构造函数的含义?我不知道这是什么定义...

export class Item {

  constructor(fields: any) {
    // Quick and dirty extend/assign fields to this model
    for (const f in fields) {
      // @ts-ignore
      this[f] = fields[f];
    }
  }

}

1 个答案:

答案 0 :(得分:1)

这允许调用代码以fields的形式传递任何对象,然后获取该对象的所有可枚举属性(包括继承的属性)并将其值复制到正在创建的Item的实例中。 “快速而肮脏的”是通常可以正常工作的代码的通用术语,但可能不是最佳实践。 (在TypeScript中,该代码当然不是最佳实践; Item应该定义其形状[属性和方法],并且仅具有为其定义的属性。)