Avatar ·

Quais as diferenças entre os tipos String e string no TypeScript?

Olá a todos! Comecei a estudar TypeScript recentemente e me deparei com uma situação confusa. Na documentação e em vários exemplos, vejo que para declarar variáveis de string usam dois tipos diferentes: `String` e `string`. Por exemplo: ```typescript let name1: string = "Alice"; let name2: String = "Bob"; ``` Ambas as opções parecem funcionar, e o código compila sem erros. Mas notei que se eu usar `String` (com letra maiúscula), o TypeScript às vezes se comporta de forma estranha. Por exemplo, tentei escrever assim: ```typescript let greeting: String = new String("Hello"); let message: string = "World"; // Isso não funciona: // let result: string = greeting + message; // Erro? ``` Embora em JavaScript tudo funcionasse. Também vi que alguns desenvolvedores reclamam quando alguém usa `String` em vez de `string`. Por favor, me expliquem qual é a diferença? Por que o TypeScript permite usar ambas as opções? E qual delas é a correta para o desenvolvimento do dia a dia? Desde já agradeço.