Avatar ·

TypeScript 函数参数中的问号有什么作用?

大家好!我最近开始学习 TypeScript,在函数参数中遇到了一种奇怪的写法。我看到有时在冒号和参数类型之前会加一个问号。例如: ```typescript function greet(name?: string) { return `Hello, ${name || 'Guest'}!`; } ``` 我知道 `: string` 表示参数应该是字符串类型。但前面的 `?` 是做什么的呢?我尝试了带参数和不带参数调用函数——两种方式似乎都能工作。但如果去掉问号,当我调用 `greet()` 而不传参数时,TypeScript 就会报错。 这个问号到底是什么意思?这是 JavaScript 的特性还是仅 TypeScript 才有?`name?: string` 和 `name: string | undefined` 有区别吗?希望能得到详细的解释和示例,因为文档写得太复杂了,而我想在实践中理解如何正确使用。 提前感谢! <<>>

问号在参数中的作用