我正在尝试使用带有这样的嵌套对象的类型:
type Numbers = {
numberOfCategories: number,
colors: {
numberOfColors: number
},
cars: {
numberOfCars: number
}
}
并自动生成一个扁平化的类型,如下所示:
type FlattedNumbers = {
numberOfCategories: number,
numberOfColors: number
numberOfCars: number
}
我认为这样可以解决问题,但是它没有按我预期的那样工作:
type Numbers = {
numberOfCategories: number,
colors: {
numberOfColors: number
},
cars: {
numberOfCars: number
}
}
type ConvertToObjects =
& (<K, V:Object> (K, V) => V)
& (<K, V> (K, V) => { K: V })
type Flattened = { ...$Values<$ObjMapi<Numbers, ConvertToObjects>> };
let test = ({
numberOfCategories: 2,
numberOfColors: 5,
numberOfCars: 10
}: Flattened)
我收到以下错误消息:
// 15: type Flattened = { ...$Values<$ObjMapi<Numbers, ConvertToObjects>> };
// ^ number [1] is not an object.
// References:
// 2: numberOfCategories: number,
// ^ [1]
我的目标是使等效的Flattened
函数正常工作。
我从这里开始玩: flow playground
答案 0 :(得分:0)
此问题似乎已在a recent commit中修复,自您发布此问题以来,该问题已在Flow v0.111.1
中作为错误修复发布。您的游乐场链接在最新版本上未显示任何错误,但在使用v0.111.0
时仍会显示。