我有一个联合体类型:
type Browser = 'chrome' | 'firefox'
,我想创建一个接口/类型,其中有效属性只能是chrome和firefox。我想到了这个:
type IM {
[key in Browser]: {
string: boolean
}
}
问题是我想允许chrome
和firefox
属性中的任何属性。可能吗?我正在尝试使用括号概念:
[string]: boolean
但毫不奇怪,它不起作用。
答案 0 :(得分:1)
如果要允许任何boolean
属性,可以使用索引签名:
type Browser = 'chrome' | 'firefox'
type IM = {
[key in Browser]: {
[name: string]: boolean
}
}
自定义映射类型并不是必需的,您可以改为使用Record
:
type IM = Record<Browser, {
[name: string]: boolean
}>