当前位置 博文首页 > 刘哇勇:TypeScript 中 Optional Chaining 和 Nullish Coalescin
Optional Chaining 解决的问题是重复且无意义的判空,之所以说无意义,是对业务来说它不是必需的,但不判空,程序直接就挂了,比如: let x = foo.bar.baz(); 这里的访问链路上 使用 Optional Chaining 修改后: let x = foo?.bar.baz(); 这里 Optional Chaining 在这里表示,如果 作用范围需要注意的是,这里只对 所以可以这样来修正: let x = foo?.bar?.baz(); 这样可以保障 Opptoinal call对于方法也同样适用。 async function makeRequest(url: string, log?: (msg: string) => void) { log?.(`Request started at ${new Date().toISOString()}`); // roughly equivalent to // if (log != null) { // log(`Request started at ${new Date().toISOString()}`); // } const result = (await fetch(url)).json(); log?.(`Request finished at at ${new Date().toISOString()}`); return result; } Optional element access数组也是对象,只不是特殊的对象,通过数字索引作为属性来访问。所以 Optional Chaining 也可作用于数组元素的访问,此时就体现了 /** * Get the first element of the array if we have an array. * Otherwise return undefined. */ function tryGetFirstElement<T>(arr?: T[]) { return arr?.[0]; // equivalent to // return (arr === null || arr === undefined) ? // undefined : // arr[0]; } 和
|
The text was updated successfully, but these errors were encountered: |