有没有一种方法可以从对象类型派生流类型,从而使可选属性不是可选的?

时间:2020-11-12 19:56:23

标签: flowtype

给出一些包含可选属性的类型:

type Obj = {
  a: string,
  b: ?string,
  c?: string,
  d?: ?string,
  e: ?string | void,
}

我想从中派生一个新类型,使其具有相同的属性,但不是可选的。

type Obj = {
  a: string,
  b: string,
  c: string,
  d: string,
  e: string,
}

我认为$ObjMap$NonMaybeType可以为我做到这一点:

type SafeObj = $ObjMap<Obj, <T>(T) => $NonMaybeType<T>>;

但是,我发现它不适用于上述情况cd,其中在属性的键上放置了?以使其可选。

还有其他方法可以完成支持可选属性的我所需要的吗?

在键上放置?与在值侧选择void之间是否还有其他区别?

Here is a complete try-flow example

0 个答案:

没有答案