我们什么时候应该使用 Record vs { [index: string]: T } ?
看来 Record
一定是出于某种原因添加的,但是 announcement和 Handbook不要解释为什么。
const x: { [index: string]: number } = { f: 2, 3: 5 };
const y: Record<string, number> = { f: 2, 3: 5 };
最佳答案
Record
通常与键并集一起使用以获得包含这些键的类型(例如:Record<'a' | 'b', string > == { a:string, b:string}
)
如果您传入 string
而不是键的并集这将解析为索引签名,因此问题中提到的两种类型是等效的。
您使用哪一个主要是风格问题。如果我定义的类型只有索引签名,我更喜欢 Record
.如果类型比较复杂,那么我们需要拼出索引签名。
关于typescript - 我们什么时候应该使用 Record<string, T> vs { [index : string]: T } ? [TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55902585/