У меня есть al oop, которые добавляют некоторые данные в состояние и пытаются исправить проблему типа.
Я создаю имя переменной data
с типом Partial<State>
. В моем l oop я добавляю некоторую информацию в базу данных в ответе 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 ответ будет динамическим c и иметь некоторую часть состояния.
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
не установлен l oop, предыдущее значение должно остаться.
Я не хочу делать его неопределенным (у него есть начальное значение)
Я не Я не хочу отображать мое состояние для [key:string]
из-за другой части кода.
Как я могу добавить тип для data
на основе состояния, которое говорит, что если ключ не существует, это не undefined.
Вот пример https://codesandbox.io/s/react-typescript-winj5?fontsize=14&hidenavigation=1&theme=dark