typescript可选参数 null,undefine的表现

程序测试

ts 复制代码
function add(a: number, b?: number | null): number {
    if (b == undefined) {
        console.log("b is empty")
    }
    if (!b) {
        console.log("b is empty x")
    }
    if (b == null) {
        console.log("b is empty y")
    }


    let c = b ?? 0;
    let d = b!;
    console.log(d);
    console.log(c);
    let x = c + a;
    console.log(x)
    return x;
}

测试

在nodejs环境进行测试,都没有奔溃问题

  • 可选参数不传
    add(1)
    // 控制台打印
    // b is empty
    // b is empty x
    // b is empty y
    // undefined
    // 0
    // 1
  • 传undefined
    add(1, undefined)
    // 控制台打印
    // b is empty
    // b is empty x
    // b is empty y
    // undefined
    // 0
    // 1
  • 传null
    // b is empty
    // b is empty x
    // b is empty y
    // null
    // 0
    // 1

总结,上面三种情况都不管是判空,判undefine或者是判非可以匹配到。

相关推荐
树上有只程序猿11 分钟前
低代码何时能出个“秦始皇”一统天下?我是真学不动啦!
前端·后端·低代码
TT_哲哲12 分钟前
小程序双模式(文件 / 照片)上传组件封装与解析
前端·javascript
菜果果儿28 分钟前
Vue 3 + TypeScript 常用代码示例总结
前端
前端付豪33 分钟前
实现多角色模式切换
前端·架构
从文处安34 分钟前
「九九八十一难」从回调地狱到异步秩序:深入理解 JavaScript Promise
前端·javascript
要换昵称了34 分钟前
Axios二次封装及API 调用框架
前端·vue.js
进击的尘埃35 分钟前
Node.js 子进程管理:child_process 模块的正确打开方式
javascript
猫腻前端36 分钟前
深度图d3绘制交互逻辑
前端
搞个锤子哟36 分钟前
el-popover气泡宽度由内容撑起
前端
angerdream37 分钟前
最新版vue3+TypeScript开发入门到实战教程之Pinia详解
前端·javascript·vue.js