Typescript 4.4+ 版本下如何给函数参数设置合适的默认值?
问题原因
- TypeScript 中带有默认值的参数本身就隐含了可选属性,不需要额外添加可选标记
?,第一种写法同时使用?和默认值属于语法错误,因此无法正常生效。
最简解决方案
直接移除可选标记?即可,无需改为对象传参:
const test = ( a: number, b: boolean = true ): number => { return b ? a : 0 }
调用示例
- 只传第一个参数:
test(10),此时b默认取值为true,返回结果为10 - 传入两个参数:
test(10, false),此时b取值为传入的false,返回结果为0
补充说明
如果后续参数数量变多、存在大量可选参数的场景,再考虑使用对象解构传参的写法,这种场景下对象传参可以避免传参时需要严格对应参数顺序的问题,可读性更高;参数较少的场景直接使用普通默认参数即可,更简洁。
内容的提问来源于stack exchange,提问作者Bru Mas Ribera
相关产品推荐
相关产品推荐

