在redux中,状态应该是不可变的。我希望Flow可以防止任何人改变该状态。因此,给定任意深度的对象:
type object = {
a: {
b: {
d: string
}
},
c: number
}
Run Code Online (Sandbox Code Playgroud)
我如何创建一个递归只读的新类型,所以我不能这样做:
let TestFunction = (param: $RecursiveReadOnly<object>) => {
param.a.b.d = 'some string'
}
Run Code Online (Sandbox Code Playgroud)
$ReadOnlyFlow 的内置实用程序将创建这样的类型,这不是必需的,因为b&d仍可写:
{
+a: {
b: {
d: string
}
},
+c: number
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用$Call&$ObjMap(i),但是我不知道如何在Flow中递归地移动对象。目的是要做到这一点:
{
+a: {
+b: {
+d: string
}
},
+c: number
}
Run Code Online (Sandbox Code Playgroud)