見出し画像

Deno 1.5 リリースノートメモ

Deno1.5が一昨日(10/28)にリリースされました。
REPLのシンタックスハイライトが効くようになったり、alert、confirmなどのAPIが入って対話型プログラムが書けるようになりました。
メモとして見ていこうと思います。

Denoってなに?

Denoとは、Node.jsの開発者であるRyan Dahl 自身によって作られた、新しいJavaScriptとTypeScriptのランタイム環境 です。
Node.jsで感じていた課題感などを踏襲して新たに作られています。

詳しくは下記をご参照ください。

バンドラーの改善

Deno1.5は、全体的なTypescriptコンパイラの構造が見直され、swcに基づく新しいバンドラーとして大きく改善されています。
1.4と比較して、コードの型チェック時のパフォーマンスが3倍向上し、 --no-check フラグを用いると最大15倍ほどの差が出るようです。

また、1.5で加わったバンドラーではTree Shakingできるようになり、バンドルファイルのサイズも大幅に縮小されるようになります。

WEB標準の対話型APIの追加

WEBブラウザにおける対話型APIである alertconfirmprompt が同機能としてDenoにも加わりました。

alert ... コンソールにメッセージを記録し、Enter押下まで同期的にブロックします。
confirm ... コンソールにメッセージを記録し、ユーザにy or n の応答を期待します。
prompt ... ユーザに入力を期待し、テキスト入力&Enter押下まで同期的にブロックします。

以下、例になります。(公式のサンプルのままです)

let name: string | null = "";

while (true) {
 // テキスト入力待機
 name = prompt("あなたのお名前はなんですか?");

 // y or n の確認
 if (confirm(`${name}さんでお間違い無いですか?`)) {
   break;
 }
}

// Enter押下まで待機
alert(`${name}さん、お待ちしてました!`);

結果はこのようになります。

スクリーンショット 2020-10-30 0.24.11

簡単な対話型のプログラムはさくっと作れそうですね。

REPLの改善

DenoのREPLにおいて、タブ補完やシンタックスハイライトの追加、トップレベルawaitなどが追加になりました。

例として、REPLで簡易なAPI を叩いてみます。(GIFのnoteへの反映が上手くいかなったのでリンクで...)

タブで補完が効き、シンタックスハイライトが効いているのが分かります。
また、トップレベルでそのままawaitを扱うことができてますね。

Denoはマイナーバージョンが毎月アップデートしている段階で、先月(9/14)にも1.4がリリースされ、WEB標準のWebSocket APIが加わったり、ファイルチェンジのwatch機能が追加されたりと活発に開発が進んでいます。
こちらにバージョンアップなどのNewsが上がるので、ご興味ある方は定期的に覗いてみると良さそうです。


この記事が気に入ったらサポートをしてみませんか?