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];
}
}
}
解决方案
它允许调用代码传入任何对象,fields
然后获取该对象的所有可枚举属性(包括继承的属性)并将它们的值复制到Item
正在创建的实例中。“又快又脏”是代码最常用的术语,但可能不是最佳实践。(在 TypeScript 中,该代码当然不是最佳实践;Item
应该定义其形状 [属性和方法],并且仅具有为其定义的属性。)
推荐阅读
- php - Gravity Forms 来自字段的动态确认
- slider - python Plotly滑块不动
- java - Android Studio 无法解决:com.github.Udhayarajan:liquid-swipe-android:1.0.1
- javascript - 如何减去时间戳并将其添加到猫鼬的响应中?
- github - Appcenter 在获取私有 repo 包时构建 401
- python - 赋予数据框行权重
- javascript - 反应打字稿 | 如何使用顺风启用暗模式?
- tensorflow - Tensorflow《基础文本分类器》教程中的Extra Dense Layer
- azure - 如何为 Java Azure Function 应用添加重试策略?
- mongodb - MongoDB在对象内保留换行符