Uso de objetos TypeScript como diccionarios (Dictionary) como en C#
¡Hola! Estoy migrando de C# a TypeScript y no logro entender cómo implementar correctamente un análogo de Dictionary. En C# escribo:
```csharp
var dict = new Dictionary();
dict.Add("apple", 5);
dict.Add("banana", 3);
Console.WriteLine(dict["apple"]); // 5
```
En TypeScript intento hacerlo así:
```typescript
let dict = {};
dict["apple"] = 5;
dict["banana"] = 3;
console.log(dict["apple"]); // 5
```
Pero TypeScript se queja de `dict["apple"]` — dice que el elemento tiene implícitamente tipo `any`. Si tipifico explícitamente:
```typescript
let dict: { [key: string]: number } = {};
```
Entonces funciona, pero no entiendo:
1. ¿Cómo declarar correctamente este diccionario?
2. ¿Cómo verificar si existe una clave?
3. ¿Cómo recorrer todos los elementos del diccionario?
4. ¿Existe una clase Diccionario incorporada?