03-ts对简单的可选参数处理
1. 简单的可选参数处理
typescript
function logger3(arg1: string, arg2: string, arg3?: string) {
console.log(`this is ${arg1} ${arg2} ${arg3 ?? ''}`)
}
logger3('123', '456')
logger3('123', '456', '789')2. 当相关对象可能为空时的一些处理
补充: 可选操作符 ?? 和 || 的区别
?? 不会隐式转换前面的值, 只有前一个值为null和undefined, 才会使用后一个值
|| 会对前一个值进行隐式转换, 只要转换后的布尔值为false, 就会使用后一个值
typescript
interface User {
name: string
info?: {
email?: string
}
}
// 当可以确定该值不为空时的处理
function getEmail(user: User): string {
if (user.info) {
return user.info.email!
}
return 'no email'
}
// 使用可选操作符进行相关属性判断
function getEasyEmail(user: User): string {
return user.info?.email ?? 'no email'
}
const user: User = {
name: 'ts',
info: {}
}
console.log(getEmail(user))
console.log(getEasyEmail(user))
// 对函数参数使用可选操作符
function addCallback(x: number, y: number, callback?: () => void): void {
console.log([x, y])
callback?.()
}