当我在另一个类方法中作为参数传递类属性时,我在获取类属性方面遇到了问题
我的问题是如此复杂,我的代码,我试图简化它得到的解决方案
假设我有这样一个User类:
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
}
}
我有一个注册类它有register方法:
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)
这对用户有效,但对公司则返回此错误:
这里是操场
1条答案
按热度按时间mklgxw1f1#
您只需删除
K &
,它将如下所示:当您呼叫时:
你没有提供
K
参数,你只是基本上提供了setName
,因为它是作为静态属性出现的。如果你有K &
部分,那么你需要提供实际的示例,new Company()
或类似的,以便能够引用示例字段。