您的位置:首页 > 教育 > 培训 > TypeScript中 ?, ??, !, !! 的使用

TypeScript中 ?, ??, !, !! 的使用

2025/5/10 14:26:12 来源:https://blog.csdn.net/qq_32768235/article/details/140848904  浏览:    关键词:TypeScript中 ?, ??, !, !! 的使用

1 【?】 属性 或 参数 中使用 ? 表示该属性或参数为【可选项】

他会先判断 name 属性是存在,存在就去访问他的值,不存在就返回undefined

const user = null;
console.log(user.name)   // 以前会报错
//现在,他会先判断 name 属性是存在,存在就去访问他的值,不存在就返回undefined
console.log(user?.name)   

2 【!】属性或参数中使用!表示表示强制解析(告诉typescript编译器,这里一定有值)

?让类属性为可选属性,可以不传,!可以当这个属性不存在时返回undefined而不是报错

interface IDemo {x?: number //该属性是可选,可以不传
}
const demo = (parma: IDemo) => {const y:number = parma.x!  // !可以将 当这个x属性为空将返回undefined而不是报错return y
}
console.log(demo({}))          // 没有传x, 输出: undefined
console.log(demo({x: 3}))      // 输出: 3

3 【||】 或运算符,属性不在就返回右边值,在就返回它自己的值

// 如果为undefined,返回y=1,如果不为undefined,则返回parma.x的值
const y:number = parma.x || 1;
console.log(y); // 输出: 1
const z:number = parma2.x || 1;
console.log(z); // 输出: 3

3 【!!】 表示将把表达式 【强行转换】 为 bool

0为false,非零为true

console.log(!!(0 + 0)) // 输出: false
console.log(!!(3 * 3)) // 输出: true
console.log(!!('aaaa')) // 输出: true
console.log(!!('')) // 输出: false

4 【??】 ??表示只有当左侧为null和undefined时, 才会返回右侧的数

0为false,非零为true

const foo = null ?? 'default string';
console.log(foo); // 输出: "default string"
const foo = undefined ?? 'default string';
console.log(foo); // 输出: "default string"const baz = 0 ?? 42;
console.log(baz); // 输出: 0

下面是?、??、!、!!的基本介绍:
属性或参数中使用?表示该属性或参数为可选项
??表示只有当左侧为null和undefined时, 才会返回右侧的数
属性或参数中使用!表示表示强制解析(告诉typescript编译器,这里一定有值)
变量前使用!表示取反, 变量后使用!表示类型推断排除null、undefined从而使null 和undefined类型可以赋值给其他类型并通过编译
!!表示将把表达式强行转换为逻辑值.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com