VSCode参数类型提示中冒号前加问号与不加的区别是什么?

两种参数类型标注的核心区别
你在VSCode提示中看到的两种写法是TypeScript类型体系(或JS类型推断展示)里必填参数和可选参数的区分标识,差异如下:
- 不带问号的
error: any属于必填参数
调用done()函数时必须传入该位置的实参,缺省的话会触发类型校验报错,不符合语法规则。 - 带问号的
user?: any属于可选参数
调用done()函数时该位置参数可传可不传,未传参时参数默认值为undefined,不会触发类型报错。该写法本质等价于user: any | undefined的联合类型标注。
额外补充规则:TypeScript语法要求所有可选参数必须排列在必填参数的后方,否则会直接报语法错误。
内容的提问来源于stack exchange,提问作者yoonjae
相关产品推荐
相关产品推荐

