在TypeScript中设置循环中的对象字段
我有一个Feature对象(最初来自数据库,但在下面的代码中我简化了它),我想更新它:在TypeScript中设置循环中的对象字段,typescript,typing,Typescript,Typing,我有一个Feature对象(最初来自数据库,但在下面的代码中我简化了它),我想更新它: type Feature = {id: number, name: string, deletedAt?: Date} const newData: Partial<Feature> & {id: number} = { id: 1, deletedAt: new Date() }; const oldFeature: Feature = { id: 1, name: '
type Feature = {id: number, name: string, deletedAt?: Date}
const newData: Partial<Feature> & {id: number} = {
id: 1, deletedAt: new Date()
};
const oldFeature: Feature = {
id: 1, name: 'Abc', deletedAt: undefined
};
for (const key of Object.keys(newData) as (keyof Feature)[]) {
oldFeature[key] = newData[key];
}
type Feature={id:number,name:string,deletedAt?:Date}
const newData:Partial&{id:number}={
id:1,删除日期:新日期()
};
常量特征:特征={
id:1,名称:“Abc”,删除日期:未定义
};
for(Object.keys(newData)的常量键为(keyof Feature)[]{
oldFeature[键]=新数据[键];
}
oldFeature[key]
和newData[key]
都属于string | number | Date |未定义的类型
。但当然,对于两个对象中的每个给定键,类型将是上述类型之一,并且将是相同的。尽管如此,我还是不允许进行赋值oldFeature[key]=newData[key]
,因为它给出了一个错误:
类型“string | number | Date | undefined”不可分配给类型“never”。类型“未定义”不可分配给类型“从不”。ts(2322)
为什么??以及如何正确制作?请分享min可复制example@captain-yossarian I修改了问题,在
oldFeature
中显示name
属性的类型为string
,在newData
中显示类型为string |未定义
。它们不兼容。您不能将string |未定义的分配给strng