Avatar ·

Para que serve o ponto de interrogação nos parâmetros de funções TypeScript?

Olá a todos! Recentemente comecei a estudar TypeScript e me deparei com uma construção estranha nos parâmetros de funções. Vejo que às vezes colocam um ponto de interrogação antes dos dois pontos e do tipo do parâmetro. Por exemplo: ```typescript function greet(name?: string) { return `Hello, ${name || 'Guest'}!`; } ``` Eu entendo que `: string` significa que o parâmetro deve ser uma string. Mas o que o `?` faz antes disso? Tentei chamar a função com e sem parâmetro — parece funcionar de ambos os jeitos. Mas se eu remover o ponto de interrogação, o TypeScript começa a reclamar quando chamo `greet()` sem argumento. O que exatamente significa esse ponto de interrogação? É alguma característica do JavaScript ou apenas do TypeScript? E há diferença entre `name?: string` e `name: string | undefined`? Ficarei grato por uma explicação detalhada com exemplos, porque na documentação está complicado, e na prática quero entender como usar corretamente. Desde já, obrigado! <<>>

O que significa o ponto de interrogação no parâmetro