Typescript 部分<;T>;不可分配给对象类型的对象类型
我有一个模型课:Typescript 部分<;T>;不可分配给对象类型的对象类型,typescript,typescript2.0,Typescript,Typescript2.0,我有一个模型课: export abstract class Model<T = IBaseModel> { ... } 然后,模型的这个抽象基类允许用户分配一个“记录”属性 public set record(value: Partial<T>) { const now: datetime = moment().toISOString(); const createdAt: datetime = this.rec('createdAt') || now;
export abstract class Model<T = IBaseModel> { ... }
然后,模型的这个抽象基类允许用户分配一个“记录”属性
public set record(value: Partial<T>) {
const now: datetime = moment().toISOString();
const createdAt: datetime = this.rec('createdAt') || now;
const timeInfo = { lastUpdated: now, createdAt };
this._record = { ...value, ...timeInfo };
}
公共集记录(值:部分){
const now:datetime=moment().toISOString();
const createdAt:datetime=this.rec('createdAt')|| now;
const timeInfo={lastUpdated:now,createdAt};
这个._记录={…值,…时间信息};
}
出于某种原因,尽管Typescript反对将value
视为一个对象(考虑到它被定义为Partial
,我认为这是一个对象)。下面是一个错误……任何人都知道我做错了什么
Spreading不适用于泛型,这是一个问题的例子:。还有更多类似的问题,@NitzanTomer的所有副本:@NitzanTomer您所指的线程似乎表明有一个修复程序进入了2.3.3,但我使用的是2.4.0,仍然出现错误。它说的是
Milestone TypeScript 2.5
。哦,我明白了。我指的是您的第一个链接谈到2.3.3,但第二个链接(更直接地针对我的问题)确实指向了2.5。我猜它还不在@next中,因为我昨天也尝试过。
public set record(value: Partial<T>) {
const now: datetime = moment().toISOString();
const createdAt: datetime = this.rec('createdAt') || now;
const timeInfo = { lastUpdated: now, createdAt };
this._record = { ...value, ...timeInfo };
}