字段数未知的流对象

时间:2019-02-15 13:32:42

标签: javascript flowtype

如何定义我知道的对象的类型,可以肯定有两个字段:id和name,以及其他未知数量的字段,其名称遵循模式string_string

例如,我要拥有的对象是:

{id:'1',name:'john','fa2_oh':'value'}

如果对象只有idname,我知道如何定义类型:

{ id: string, name: string }

但是我该如何定义其他可能的键?

1 个答案:

答案 0 :(得分:1)

正如Aleksey所说,您可以添加一个indexer属性,但无法指定字符串的 pattern

type BaseT = { a: string, b: number, [string]: boolean }
const foo: BaseT = { a: 'a', b: 1, hello: false }

如果模式有一定边界,则可以拼出该类型:

type KeysT = 'fa_oh1' | 'fa_oh2' | 'bb_aa1' | 'bb_aa2'
type BaseT = { a: string, b: number, [KeysT]: boolean }
const foo: BaseT = { a: 'a', b: 1, hello: false }