可选链操作符 ?.
当目标为undefined
或null
时,短路并返回undefined
。
obj?.prop
obj?.[expr]
arr?.[index]
func?.(args)
后续目标不会继续执行
let potentiallyNullObj = null;
let x = 0;
let prop = potentiallyNullObj?.[x++];
console.log(x); // x 将不会被递增,依旧输出 0
空值合并操作符 ??
当左侧的操作数为 null
或者 undefined
时,返回其右侧操作数,否则短路并返回左侧操作数。
不同于||
的假值判断,常用于为空则赋于默认值
场景
const foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"
const baz = 0 ?? 42;
console.log(baz);
// expected output: 0
内置对象
详见TypeScript核心库定义文件
注意,NodeJS不是内置对象,如需使用,则应引入@types文件:
npm install @types/node --save-dev
- ECMA 内置对象
Boolean、Error、Date、RegExp 等。 - DOM 和 BOM 的内置对象
Document、HTMLElement、Event、NodeList 等。
网友评论