如何定义我知道的对象的类型,可以肯定有两个字段:id和name,以及其他未知数量的字段,其名称遵循模式string_string
。
例如,我要拥有的对象是:
{id:'1',name:'john','fa2_oh':'value'}
如果对象只有id
和name
,我知道如何定义类型:
{ id: string, name: string }
但是我该如何定义其他可能的键?
答案 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 }