我尝试使用reduce从数组创建字典。然而,当使用reduce从数组创建字典时,我遇到了一个flow错误属性,该属性在object literal [1]中丢失。这对所有三个键'A',' B',和'C'都发生了。
const foo = [
'A',
'B',
'C',
];
const bar = foo.reduce((acc, curr) => {
// the actual code will do some logic on the string value in foo
// but for the test just create a dictionary of the key to itself as value
acc[curr] = curr;
return acc;
}, {});
https://flow.org/try/#1N4Igxg9gdgZglgcxALlAJwKYEMwBcD6aArlLnALYYrgA2WAzvXGCADQgYAeOBARgJ74AJhhhYiNXClzEM7DFCLl602QF92kEdQA6UAAT7IUern0wIEfQF59AbT2HDAcgCCz1o6fOAQh68uAML+BvoAugDcel7Gpvq8WGg25pYAdJhCRGAYABQ5OGCsRkRoaACUNgB8+sCOAfoA9A36uAAWGPo8RFg0RhAi+gDucDS9Qlb0EJT6NJYA1kQADvrQKRD1TfFEZhZJbR24GHEAVkRxYJhYh536Qsxk0In8KzAt7fpzGM+4VnC49BgaK8GPoAG49IgYaKhQwFOxgEpoMLJBGlKIw-SYXAlAwFdGGDQ1NRlCJsECgjBoJjQaiggAMqQATHSACypOkgNRAA
1条答案
按热度按时间j8ag8udp1#
这里的问题是Flow识别出初始值
{}
是一个空对象,所以当你试图向{}.A
添加一些东西时,会抛出警告/错误。这里有一个解决方案,给初始值一个自定义的Dictionary类型,请参阅对象作为Map:
PS:这在Typescript中也是一样的