コンテンツにスキップ

[TypeScript] 3.7

TypeScript3.7のリリース内容まとめ

Optional Chaining

SHOULD EASY

TypeScriptのversion3系で 必ず覚えた方がいい機能。
この機能を望むGitHub Issueは 23000件 以上とのこと😱

概要

Optional Chainingを使うと?.によってnullundefinedの考慮を簡略化できる。

具体的には以下のコードを..

const x = foo === null || foo === undefined ? undefined : foo.bar.baz();

このように書ける。

const x = foo?.bar.baz();

&& チェーンが不要になる

このように書いていたのが..

if (foo && foo.bar && foo.bar.baz) {
  // ...
}

このように書ける。

if (foo?.bar?.baz) {
  // ...
}

配列の場合

array?.[1]のように書ける。
undefined?.[1]undefinedになる。

関数の場合

hoge?.()のように書ける。
undefined?.()undefinedになる。

その他

以下の記事も参考に。

Nullish Coalescing

SHOULD EASY

??オペレータが使えるようになった。
??を使うと||ではfalseと判定されていた0, NaN, ""trueと判定される。

以下の2つは等価である。

  • const x = foo ?? bar();
  • const x = foo !== null && foo !== undefined ? foo : bar();

もう0 ||に恐れる必要はない。

以下の記事も参考に。