Невозможно назначить правильно набранный член для карты

Хотя я в целом понимаю причину ошибок Typescript и могу их исправить, эта меня сбила с толку.

В эту детскую площадку я рассчитывать на ответ от <а href = "https://stackoverflow.com/questions/65365760/can-i-define-a-typescript-map-having-a-value-constraint-corresponding-with-each"> Могу ли я определить карту Typescript, имеющую ограничение значения, соответствующее каждому ключу значения?, чтобы создать карту с правильно типизированными свойствами, но я обнаружил, что не могу назначить член.

Я ожидал, что Typescript сможет объяснить, что его можно назначить. Ошибка довольно странная. Учитывая, что свойство является необязательным, я ожидаю, что оно примет значение undefined, но не буду жаловаться, если это конкретный объект, который гарантированно соответствует ограничению. В populateLastActions присвоение lastAction[actionType] = action вызывает ошибку.

const lastAction: {
    create?: CreateAction | undefined;
    fulfil?: FulfilAction | undefined;
}
Type 'Action' is not assignable to type 'undefined'.
  Type 'CreateAction' is not assignable to type 'undefined'.(2322)

person cefn    schedule 19.12.2020    source источник
comment
Думаю, это потому, что творишь? может быть определен или не определен, поэтому, если вы просто сделаете его как create вместо create? ошибка должна исчезнуть.   -  person Sakshi    schedule 19.12.2020
comment
Это связано с тем, что я называл коррелированными типами, и вы, вероятно, нужно будет обойти это либо с помощью избыточности, либо утверждение типа.   -  person jcalz    schedule 19.12.2020