Машинопись - тип для частичного состояния - PullRequest
0 голосов
/ 27 мая 2020

У меня есть 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...