Avatar ·

Qual é a diferença entre os tipos String e string no TypeScript?

Olá, colegas! Comecei a estudar TypeScript recentemente e me deparei com uma situação confusa. Em alguns exemplos de código, vejo que para declarar uma variável do tipo string é usado `string` (com letra minúscula), e em outros, `String` (com letra maiúscula). Por exemplo: ```typescript let name1: string = "John"; let name2: String = "John"; ``` Ambas as opções funcionam, e não vejo diferença no comportamento. Meu código compila sem erros em ambos os casos. Mas sinto que não é apenas uma diferença estilística. Ouvi em algum lugar que `String` é uma classe, enquanto `string` é um tipo primitivo, mas não entendo como isso afeta o uso prático. Alguém pode explicar qual é exatamente a diferença? Quando devo usar uma opção e quando a outra? Existe alguma armadilha se eu usar `String` em vez de `string`? Agradeceria um exemplo simples que demonstre as diferenças. Já pesquisei, mas as respostas no Stack Overflow em inglês são muito complexas para um iniciante. Gostaria de