ts 对象使用循环赋值的方式报错?
如图所示,请问需要怎么写
回答:
参考方法
Object.keys(form).forEach((v) => { const value = v as keyof typeof form
form[value] = data[value]
})
但有时候没必要做得那么极端。像你这代码一看就懂得是在复制属性,可以偷个小懒直接写成
Object.keys(form).forEach((value) => { (form as any)[value] = (data as any)[value]
})
毕竟工具用来给人服务的,这种一看就不会出错的代码没必要还被工具束缚。
此外,如果是为了合并对象,还可以直接用
Object.assign(form, data)
请根据自己的需求选择适合的方法。
回答:
楼上的方法其实是最简单有效的,非要严格一点,我能想到可以这么写
function getObjectKeys<T extends object>(object: T) { return Object.keys(object) as (keyof T)[]
}
type PropKeys = keyof typeof from
const init =(data: typeof from )=>{
if(data){
getObjectKeys(from).forEach(<K extends PropKeys>(value: K)=>{
from[value]=data[value]
})
}
}
以上是 ts 对象使用循环赋值的方式报错? 的全部内容, 来源链接: utcz.com/p/933615.html