Avatar ·

¿Para qué se usa el signo de interrogación en los parámetros de funciones TypeScript?

¡Hola a todos! Recientemente comencé a estudiar TypeScript y me topé con una construcción extraña en los parámetros de funciones. Veo que a veces antes de los dos puntos y el tipo del parámetro colocan un signo de interrogación. Por ejemplo: ```typescript function greet(name?: string) { return `Hello, ${name || 'Guest'}!`; } ``` Entiendo que `: string` significa que el parámetro debe ser un string. Pero, ¿qué hace `?` antes de esto? Intenté llamar a la función con parámetro y sin él — parece funcionar de ambas formas. Pero si quito el signo de interrogación, TypeScript comienza a quejarse cuando llamo a `greet()` sin argumento. ¿Qué significa exactamente este signo de interrogación? ¿Es alguna característica de JavaScript o solo de TypeScript? ¿Y hay diferencia entre `name?: string` y `name: string | undefined`? Agradecería una explicación detallada con ejemplos, porque en la documentación está escrito de manera complicada y en la práctica quiero entender cómo usarlo correctamente. ¡Gracias de antemano! <<>>

¿Qué significa el signo de interrogación en los parámetros?