ts 对象使用循环赋值的方式报错?

ts 对象使用循环赋值的方式报错?

ts 对象使用循环赋值的方式报错?

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

回到顶部