在此过程中,我向我的 Todo
类添加了一个构造函数:
export class Todo {
id: number;
title: string;
complete: boolean = false;
editMode: boolean = false;
constructor(values: Object = {}) {
Object.assign(this, values);
}
}
我不明白构造函数中代码的用途。
我的应用程序似乎在有和没有它的情况下都能正常工作,但我对删除代码犹豫不决
这个构造函数中 Object.assign(…) 的目的是什么?
原文由 Nick Hodges 发布,翻译遵循 CC BY-SA 4.0 许可协议
这种方法可以轻松地将类的参数值添加到类实现该接口或至少部分植入该接口的类字段中。
您的应用程序之所以有效,是因为您似乎以
values
的回调值也足够的方式实现了这一点。这个 Hack 的主要问题是 Object.assign 不是类型安全 的。所以以这种方式使用它在某种程度上违背了 TypeScript 的观点。
如果您想以类型安全的方式执行此操作,最好使用正确检查类型的自定义实现。是这样的:
您可以像这样使用此实用程序:
如果您不想/不能使用以上内容,我建议您至少添加一些类型严格性来保护您的类免受可以传递给它的值的影响