[英]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.