我有一个函数接受类型为Record<string, string>
的变量,如何创建类型有限的索引集而没有ts编译器错误。
是否可以创建具有有限类型的索引集的接口?
type MyRecord = Record<string, string>
interface MyA {
index1: string
index2: 'true' | 'false'
}
function fn(a: MyRecord) {
//do something
}
const myA: MyA = {
index1: 'index',
index2: 'true'
}
fn(myA) // error: Index signature is missing in type 'MyA'.
除非我将MyA更改为type My = {...}
答案 0 :(得分:0)
您始终可以在类型中添加索引签名:
interface MyA {
index1: string
index2: 'true' | 'false'
[key: string]: string;
}
索引签名必须与您的其他属性兼容(在这种情况下,string
是兼容的)。