Скажем, у меня была функция:Объект с частичным определением flowjs
const example = (item : ?{+type?: ?string}) : {+result: ?string} => {
const state = {}
state.result = item.result
return state
}
Это не в состоянии typecheck с:
12: state.result = item.result
^^^^^^^ property `result`. Property not found in
12: state.result = item.result
^^^^^^ object type
Почему это не typecheck? Я не определял тип с точным обозначением типа объекта ?{|+type?: ?string|}
, так что не следует ли ему вводить дополнительные ключи? Как работает точная запись объектов? И как я могу определить частичные типы объектов, как это? Возможно ли это?
Ваш аргумент 'item' не имеет свойства, называемого' result'. Вы имели в виду написать 'state.result = item.type' вместо этого? (хотя вам также потребуется нулевая проверка). –
без сожаления, если мой вопрос неясен, не стесняйтесь редактировать. Я имею в виду, что в этом объекте может быть много ключей, не все из которых я могу перечислить, и я не понимаю, почему поток не работает с typecheck, учитывая, что я не использовал нотацию «точного объекта». В любом случае я мог бы прояснить вопрос (не стесняйтесь редактировать, кстати!) –