[英]Cast Flow/TypeScript JavaScript object value types to non-nullable
我有以下類型
type MyObject = $ReadOnly<{
foo: ?number,
bar: ?number,
baz: ?number,
}>;
我想將所有值轉換為不可為空的,例如;
type MyNonNullValuesObject = $ReadOnly<{
foo: number,
bar: number,
baz: number,
}>;
在不重復所有鍵的情況下,在 Flow 中這樣做的好方法是什么? 我希望在這里使用$NonMaybeType<T>
實用程序來幫助我。
在 typescript 中,這將是:
type MyObject = Readonly<{
foo: number | null,
bar: number | null,
baz: number | null,
}>;
type NonNullableObject<T> = { [K in keyof T]: NonNullable<T[K]> };
type MyNonNullableObject = NonNullableObject<MyObject>;
使用NonNullable實用程序映射類型。
Flow 提供了一個$ObjMap
實用程序類型,您可以將其用於 map 的值,並通過$NonMaybeType
將它們轉換為不可為空的值。
type MyObject = $ReadOnly<{
foo: ?number,
bar: ?number,
baz: ?number,
}>;
type NonMaybeValueType = <V>(V) => $NonMaybeType<V>;
type MyNonNullValuesObject = $ObjMap<MyObject, NonMaybeValueType>;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.