繁体   English   中英

在打字稿中作为参数传递时如何获取返回的类属性

[英]How to get returned class properties when passing as argument in typescript

当我将它作为另一个类方法中的参数传递时,我在获取类属性时遇到问题

我的问题在我的代码中非常复杂,我试图简化它以获得解决方案

想象一下我有像这样的用户类:

class User {
  name!:string 

  static setName(_name:string){
    const user = new User()
    user.name = _name 
    return user
 
  }

}

和具有几乎相同属性的公司:

class Company {
  name!:string 
  brand!:string = 'mtx'

  static setName(_name:string){
    const company = new Company()
    company.name = _name 
    return company
  }

}

我有注册类有注册方法:

class Registration {

  static register<K >(name:string,Model: K & { setName:(n:string)=>K}): K{
   return Model.setName(name)
  }

}

我以这种方式注册用户和公司:

let user = Registration.register('mamad',User)
let company = Registration.register('mamad',Company)

所以这对用户有用,但对公司来说会返回此错误:

在此处输入图像描述

这里是游乐场

你可以只删除K &所以它看起来像这样:

class Registration {

  static register<K >(name:string,Model: { setName:(n:string)=>K}): K{
   return Model.setName(name)
  }

}

当你打电话时:

let company = Registration.register('mamad',Company)

您不提供K参数,您基本上只提供setName ,因为它作为静态属性存在。 如果您有K &部分,那么您需要提供实际实例、 new Company()等,以便能够引用实例字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM