将Flow对象的值类型转换为不可空值。

问题描述 投票:0回答:1

我有以下类型

type MyObject = $ReadOnly<{
  foo: ?number,
  bar: ?number,
  baz: ?number,
}>;

我想把所有的值都转换为非空值,例如,我想把所有的值都转换为非空值。

type MyNonNullValuesObject = $ReadOnly<{
  foo: number,
  bar: number,
  baz: number,
}>;

在Flow中,有什么好办法可以在不重复所有键的情况下做到这一点?我想使用 $NonMaybeType<T> 实用程序来帮助我。

javascript typescript flow
1个回答
0
投票

Flow提供了一个 $ObjMap 工具类型,你可以用它来映射值,并将它们变成非空值通过 $NonMaybeType.

type MyObject = $ReadOnly<{
  foo: ?number,
  bar: ?number,
  baz: ?number,
}>;

type NonMaybeValueType = <V>(V) => $NonMaybeType<V>;
type MyNonNullValuesObject = $ObjMap<MyObject, NonMaybeValueType>;
© www.soinside.com 2019 - 2024. All rights reserved.