¿Cuál es la diferencia entre los tipos String y string en TypeScript?
¡Hola a todos! Acabo de empezar a estudiar TypeScript y me encontré con una situación confusa. En la documentación y en diferentes ejemplos veo que para declarar variables de tipo string se usan dos tipos distintos: `String` y `string`. Por ejemplo:
```typescript
let name1: string = "Alice";
let name2: String = "Bob";
```
Ambas opciones parecen funcionar, y el código se compila sin errores. Pero noté que si uso `String` (con mayúscula), a veces TypeScript se comporta de manera extraña. Por ejemplo, intenté escribir esto:
```typescript
let greeting: String = new String("Hello");
let message: string = "World";
// Esto no funciona:
// let result: string = greeting + message; // ¿Error?
```
Aunque en JavaScript todo habría funcionado. También he visto que algunos desarrolladores se quejan cuando alguien usa `String` en lugar de `string`. Por favor, díganme, ¿cuál es la diferencia? ¿Por qué TypeScript permite usar ambas opciones? ¿Y cuál es la correcta para el desarrollo diario? Gracias de antemano.