让我们说我们有一个类型:
type X = {|
a: number,
b: number,
|}
我想创建一个类型为
的Y
类型
type Y = {|
a: string,
b: string,
|}
我认为$ObjMap
可能有可能,尽管它目前被认为是不稳定的,但是
type X = {|
a: number,
b: number
|}
type Y = $ObjMap<X, any => string>
const y: Y = {
a: 1,
b: 1,
c: 1
}
不会产生流量错误。任何替代方案?
答案 0 :(得分:1)
根据this comment in issue 2674,$ObjMap
目前允许无效写入和文字分配。我相信这种情况属于后一个问题。
你可以尝试一下这样的止损解决方案:
type X = {|
a: number,
b: number
|}
type Y = { [$Keys<X>]: string };
const y: Y = {
a: 1,
b: 1,
c: 1
}
这会捕获额外的密钥c
以及无效的number
值,但它不会警告您缺少密钥。