Usando objetos TypeScript como dicionários (Dictionary) como em C#
Olá! Estou migrando de C# para TypeScript e não consigo entender como implementar corretamente um análogo de Dictionary. Em C#, escrevo:
```csharp
var dict = new Dictionary();
dict.Add("apple", 5);
dict.Add("banana", 3);
Console.WriteLine(dict["apple"]); // 5
```
Em TypeScript, estou tentando fazer assim:
```typescript
let dict = {};
dict["apple"] = 5;
dict["banana"] = 3;
console.log(dict["apple"]); // 5
```
Mas o TypeScript reclama de `dict["apple"]` — diz que o elemento tem tipo implícito `any`. Se eu tipar explicitamente:
```typescript
let dict: { [key: string]: number } = {};
```
Então funciona, mas não entendo:
1. Como declarar esse dicionário corretamente?
2. Como verificar se uma chave existe?
3. Como iterar sobre todos os elementos do dicionário?
4. Existe uma classe Dictionary embutida no TypeScript?
Diga-me, como é comum trabalhar com objetos como dicionários em TypeScript? Preciso armazenar pares "chave-valor", onde as chaves são strings e os valores são objetos da minha classe User.