TypeScript中的Record是什么以及如何正确使用它?
大家好!我最近开始学习TypeScript,遇到了内置类型`Record`。我读了文档,但没有完全理解它的本质以及何时使用它。
我知道有接口和类型,但`Record`看起来有些不同。例如,我看到过这样的代码:
```typescript
const users: Record = {};
```
但我不明白这与简单的对象`{ [key: string]: User }`有什么区别。或者与`Map`相比呢?什么时候该选择哪个?
我的具体问题是:我有一个订单状态列表(pending, approved, rejected),并且需要为每个状态存储一些文本(例如,用于显示的颜色)。我这样写:
```typescript
const statusColors = {
pending: 'yellow',
approved: 'green',
rejected: 'red'
};
```
但是当我尝试访问`statusColors['unknown']`时,TypeScript会报错。如何用`Record`正确地为这个映射添加类型?总的来说,对于哪些场景`Record`最适用?我将不胜感激。