我有一个循环,它向状态添加了一些数据,并尝试解决类型问题。
我创建类型为data
的变量名Partial<State>
。在我的循环中,我根据ajax响应向数据库添加一些信息。因此,只有部分数据会被分配。
例如
interface State {
account_internal_data: number,
account_external_data: number,
// and more
// also there is some state that not relative to ajax response
}
Ajax响应是动态的,并且具有部分状态。
const data: Partial<State> = {};
response.forEach((part)=>{
switch(part.name){
case 'internal':{
data.account_internal_data: part.data;
break;
}
case 'external':{
data.account_external_data: part.data;
break;
}
// and the rest
}
});
this.setState(data);
当我尝试致电setState(data)
时,我得到并错误地指出account_internal_data
不能是不确定的。很明显,如果account_internal_data
没有通过循环设置,则先前的值应保持不变。
我不想使它不确定(它具有初始值)
由于代码的其他部分,我不想为[key:string]
映射状态。
如何根据状态说明data
的类型,如果密钥不存在,那么它不是不确定的。
这里是一个例子 https://codesandbox.io/s/react-typescript-winj5?fontsize=14&hidenavigation=1&theme=dark