// n 和 addOrEditOptions都有可选属性,n包含addOrEditOptions所有属性
rowDataChange(this: this, n: AddOrEditProductOptions) {
if (window.JSON.stringify(n) !== '{}') {
for (const key in this.addOrEditOptions) {
const k = key as keyof AddOrEditProductOptions //如何优雅的给key定义类型?
const value = n[k]
if (value) {
this.addOrEditOptions[k] = value // error: Type 'string' is not assignable to type 'never'.
}
}
}
//...
}
- 遍历对象时,如何给key定义类型?
- 通过key value 赋值,提示this.addOrEditOptions[k] 为never类型,如何解决?此处n 和 this.addOrEditOptions是同一个类型
目前我是通过this.addOrEditOptions[k] = value as never 取巧解决的
回复IanSun:
没看明白你这是要干啥?为啥要定义类型?
直接赋值不就好了?还定义了一个中间变量
k
是要干啥的?甚至于你这种合并两个对象的,用
Object.assign
不就好了?