【发布时间】:2020-02-25 04:14:20
【问题描述】:
我正在尝试使用这样的嵌套对象类型:
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
【问题讨论】:
标签: javascript flowtype