在 TypeScript 中声明和初始化字典 (Dictionary)
大家好!我是 TypeScript 的新手(之前用纯 JS 写代码),在声明字典(Dictionary,即关联数组)时遇到了问题。在 JavaScript 中,我这样写:
```typescript
let dict = {};
dict["key1"] = "value1";
dict["key2"] = 123;
```
一切正常。但在 TypeScript 中,我需要严格类型化字典,其中键是字符串,值是数字。我尝试了几种方法,但总是遇到编译错误或奇怪的行为。
方法 1:
```typescript
let dict = {};
dict["apple"] = 5; // 错误:元素隐式具有 'any' 类型
```
方法 2:
```typescript
let dict: object = {};
dict["apple"] = 5; // 错误:类型 'object' 上不存在属性 'apple'
```
方法 3:
```typescript
let dict: { [key: string]: number } = {};
dict["apple"] = "text"; // 我希望这是错误,但...
// 实际上这里会有错误,但不总是清楚如何正确操作。
```
我想要:
1. 声明一个空字典,键为字符串