3.7の新機能TypeScriptは2019/10/18時点で3.7のベータを公開中です。正式リリースはロードマップによれば11月とのことです。今回はもうすぐリリースされる3.7の予習も兼ねて、新機能を紹介していきます。TypeScriptを元に書いています。英語の成績が万年赤点だったため、おかしな意訳をしているかも知れません。その場合はやさしく教えて下さい。※社内向けでもあったりするので、弊社であまり使わなさそうな部分はさらっと流しています。Chainingがついに来ました。以下のようなものです。foo?.bar?.baz();kotlinやSwiftにはすでにあったりして、さっさとTypeScriptにも入れてくれ〜と思っていた機能がついに追加されます。これは待ち望んでいた人も多いのでは。Chainingが使えるのですが、TypeScriptでは使えないためムカついていたので喜ばしい限りです。Coalescingこれも今どきの言語では導入されていますね。以下のようなものです。使って似たようなことをすることが多かったと思いますが、ご存知の通り以下のようなバグを生みがちです。Coalescingを使用しましょう。Functions例外がスローされなければ、それ以降はある型として扱うものです。コードを見てみましょう。Guardは返り値がtrueの場合、その型として扱うというものだったため、必ず条件式が必要になっていました。Functionsが導入されれば、実行時の引数型チェックがより簡素に記述できそうです。Aliasesの定義が可能になります。Aliasesを定義したい場合、追加でJsonObjectとJsonArrayというインターフェースも定義する必要がありました。{}これが3.7からはこうなります。“lazier”)、このパターンも許可されるようになりました。Aliasesはエラーになります。Checksしょうもないミスとしてありがちな、メソッド呼び出しを忘れてif文に書いてしまうようなことを防いでくれる機能です。以下のようなものですね。常にtrueなので誰でも実行できてしまう}}これが3.7からはちゃんと怒ってくれるようになります。@ts-nocheckをTypeScriptファイルでも使用できるようになりました。@ts-nocheckを追加すれば型チェックなどが無効になります。changeslib.dom.d.tsが更新されました。Changesとなっているので、もしかしたら影響があるかも知れません。Checksでも説明した通り、ifでメソッドが呼び出されていない場合、TypeScriptでエラーが発生するようになりました。Conflictこれまでは以下のように、インポートした型定義と同一名称の型定義を定義できていましたが、これはどうやらバグだったらしく、今後はこのようなケースはTypeScriptでエラーを吐くようになります。(バグだったの??)もしなんらかの意図を持って名前を重複させていた場合は修正が必要になります。他にも以下のアップデートがあります。弊社ではあまり使い所がなさそうなので一覧だけ紹介します。コメントをキャンセルメールアドレスが公開されることはありません。新年あけましておめでとうございます。