?: 指可选参数,可以理解为参数加上 undefined 类型: function func(a: number, b?: number) { ... } 在 VsCode 中将鼠标 hover 在 b 上,会显示 b 的类型为 b: number | undefined ?? 指空值合并,跟 || 类似,但是不会筛除0: 0 || 1 // 1 0 ?? 1 // 0 ?. 和 && 类似: a?.b 相当于 a && a.b ? a.b : undefined