Làm cách nào để bạn đánh máy hình dạng của cấu trúc dữ liệu Không thể thay đổi được tạo ra từ fromJS
bằng Flow? blobs JS cũ Plain có thể được gõ rất chính xác hơn bằng một đối tượng ký hiệu đen:Flow: Đánh máy một hình dạng phức tạp Không thể thay đổi bằng cách sử dụng fromJS()?
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]
}
Tuy nhiên, ở phía bên Immutable.js, hình như vẫn có hai biến chứng chính:
Dường như bất di bất dịch phương pháp
fromJS
.js của trảany
(https://github.com/facebook/immutable-js/blob/master/type-definitions/immutable.js.flow#L764), vì vậy sau đây không bị bắt lại khi một lỗi trong luồng:const map: boolean = fromJS(obj) // this is totally not true, but Flow can't tell
Có vẻ như các hình dạng bản đồ không thể được mô tả bằng cách sử dụng ký pháp giống như đối tượng trên mỗi How to describe Immutable.js Map shape with Flow (hoặc thông tin này có lỗi thời không?).
Tôi thực sự bối rối về cách hiểu Flow để hiểu Immutable.js, bản đồ nói riêng. Từ những gì tôi có thể nói, Flow mất rất nhiều thông tin về codebase khi dữ liệu đang sống trong các cấu trúc Immutable.js thay vì các nguyên thủy JS thuần túy.
điều gì về https://github.com/flowtype/flow-typed, bạn chỉ có thể tải loại bản đồ defintion –
Không có định nghĩa cho immutabe.js trên luồng được nhập, chúng được bao gồm trực tiếp với immutable.js gói từ npm. Tuy nhiên, định nghĩa Bản đồ đi kèm với immutable.js ngay bây giờ không xuất hiện để cho phép bạn xác định hình dạng: https://github.com/facebook/immutable-js/blob/master/type-definitions/immutable.js.flow# L489 –