Exact对象中的动态密钥

时间:2017-07-13 18:29:53

标签: flowtype

我试图声明一个Exact的对象类型,所以它应该有两个键,一个是cnt,另一个是对象中的一个键。

const ICONS = { foo:'', bar:'' }

type IconNames = $Keys<typeof ICONS>;

现在IconNames是&#34; foo&#34;或&#34; bar&#34;。所以我尝试了这个:

const myObj: MyObj = { cnt:5, foo:true }
type MyObj = {| cnt:number, [IconNames]:bool |}

但它不起作用。

示例2

type Props = { blah:string, qux:string }

type MySecondObj = {| hi:boolean, bye:boolean, ...Props |}

const mySecondObj: MySecondObj = { hi:false, bye:false, blah:'ya', qux:'ok' };

然而,这也不起作用。我无法找到任何搜索结果。但这就像&#34;动态添加键&#34;所以我搜索了这个,但没有结果。

1 个答案:

答案 0 :(得分:0)

我找到了示例1的解决方案:

const ICONS = { foo:'', bar:'' }

type IconNames = $Keys<typeof ICONS>;

const myObj: MyObj = { cnt:5, foo:true }
type MyObj = {| cnt:number, [key:IconNames]:bool |}