Как вы определяете форму структуры данных Immutable.JS, сгенерированной из fromJS
с помощью потока? Обычные старые JS-капли могут быть напечатаны очень точно с использованием объектной литературной нотации:
type ObjectShape = {
a: number,
b: string,
c: {
d: number,
},
e: Array<number>
};
const obj: ObjectShape = { // hyper-accurate
a: 1,
b: '2',
c: {
d: 3,
},
e: [4]
}
Однако на стороне Immutable.js, по-видимому, есть два основных осложнения:
-
Похоже, что метод Immutable.js
fromJS
возвращаетany
(https://github.com/facebook/immutable-js/blob/master/type-definitions/immutable.js.flow#L764), поэтому следующее не пойман как ошибка в потоке:const map: boolean = fromJS(obj) // this is totally not true, but Flow can't tell
-
Похоже, что формы карты нельзя описать, используя объектно-ориентированную нотацию за Как описать карту Immutable.js с потоком (или эта информация устарел?).
Я действительно смущен тем, как заставить Flow понять Immutable.js, в частности карты. Из того, что я могу сказать, Flow теряет много разума о кодовой базе данных, когда данные живут в структурах Immutable.js вместо простых примитивов JS.