首页 > 解决方案 > 什么是快速而肮脏的扩展/分配?

问题描述

你能解释一下下面构造函数的含义吗?我不知道这定义了什么...

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];
    }
  }

}

标签: typescript

解决方案


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


推荐阅读