如何在构造函数中分配对象的值给类的所有属性?



我试图在构造函数中轻松地将对象中的所有属性分配给类中的所有属性

type tCustomUpload = {
name : string,
relationship : string,
priority : number,
id : number
}
class CustomUpload {
name : string;
relationship : string;
priority : number;
id : number;
constructor (payload : tCustomUpload) {
Object.assign(this, payload);
}
}

我试着回答如何在TypeScript中给类的所有属性赋值?但是这个答案有两个问题

  1. 接口具有可选属性,而我希望它们是必需的
  2. typescript实际上将答案标记为有错误,沿着Property 'x' has no initializer and is not definitely assigned in the constructor.

ts操场上

TypeScript并没有按照你想要的方式迭代属性来分配Object.assign。它的类型安全性较差,但您可以断言!:存在这些属性。

type tCustomUpload = {
name: string,
relationship: string,
priority: number,
id: number
}
class CustomUpload {
name!: string;
relationship!: string;
priority!: number;
id!: number;
constructor(payload: tCustomUpload) {
Object.assign(this, payload);
}
}

最新更新