有没有一种方法可以将整个对象复制到javascript的一行中的类的属性中?

时间:2020-09-14 08:09:12

标签: javascript typescript

现在我有一个看起来像这样的课:

class User {
  static collection = "users"

  public id?: string
  public email: string
  public name: string
  public token: string
  public username: string
  public image?: string
  public bio?: string
  public emailVerified?: boolean

  public createdAt: Date = new Date()
  public updatedAt?: Date

  constructor(params: InitParams<User>) {
    this.email = params.email
    this.name = params.name
    this.token = params.token
    this.username = params.username
    this.image = params.image
    this.bio = params.bio
    this.emailVerified = params.emailVerified
  }
}

现在InitParams<User>是一种精美类型,它与用户属性的确切列表匹配,而用户可能没有任何方法。因此,该类型保证了它具有初始化User的所有必要属性。

所以我想在构造函数中做这样的事情:

  constructor(params: InitParams<User>) {
    this = { ...params, ...this }
  }

但是打字稿说那是非法的,我也很确定那我会以其他方式弄乱班级。但是以防万一,有没有办法在一行中完成此初始化?

0 个答案:

没有答案