我的类型为State
,其中所有字段都是必填字段:
type State = {
title: string,
items: [],
isActive: boolean,
};
我需要创建一个新类型,其所有属性都与State
中的属性相同,但不是必需的:
type StateUpdater = {
title?: string,
items?: [],
isActive?: boolean,
};
// ({title: 'hello'}: State) — INVALID
// ({title: 'hello'}: StateUpdater) — OK
如何与以下Flow伪代码类似地实现此目的?
type StateUpdater = State.mapKeyValue(() => typeKey?: typeValue)
答案 0 :(得分:1)
您可以使用$Shape实用程序:
type State = {
title: string,
items: [],
isActive: boolean,
};
type StateUpdater = $Shape<State>;
$ Shape复制所提供类型的形状,但将每个字段标记为可选。