Deno 1.32について解説

Denoが公開したブログ記事によると、Deno 1.32が公開されたようですのでここでどんなものなのかを少し解説しておこうと思います。

変更点の概要

簡単に言うと以下のようなものです。

  • deno compile でWeb Worker APIと動的インポートの一部をサポートしたよ
  • deno run.js などの拡張子なしで実行するオプションが追加されたよ
  • 不安定なWebGPUAPIが削除されたよ
  • URLSearchParams.size() がサポートされたよ
  • 標準ライブラリの構造を変更したよ
  • Node.jsとの互換性を強化したよ
  • TypeScript 5.0に更新したよ
  • V8 11.2に更新したよ


また、この他にもいくつかあるので、詳しくはDenoが公開したブログ記事をご覧ください。

deno compile でのWeb Worker APIと動的インポートの一部サポート

これまでDenoでシングルバイナリに変換する時、Web WorkerやDynamic import(await import())などの構文は利用できませんでしたが、
文字列リテラルのみを利用した場合使えるようになります。('xxx(hello.js') はサポートされ、xxx(scriptPath) がサポートされない)

deno run で拡張子なしで実行するオプション追加

@bash
deno run --ext=js main


みたいにすることで拡張子なしで実行できます。
これができることで例えば

@js
#!/usr/bin/env -S deno run --ext=js

console.log("Hello!");



@bash
./main


のように実行することができるようになります。

不安定なWebGPU APIの削除

WebGPUに関するunstableなAPIが削除されました。
ここに関しては専門じゃないのでなんとも言えませんが、そういう系のプロジェクトを扱っている方は新しいAPIについて知っておいたほうがいいかもしれません。

URLSearchParams.size() のサポート

色々検索をしてみましたが、まだ議論中のものなのでしょうか?
URLSearchParamsはMapのためlength 属性が獲得できず、そのため特有のゲッターを追加してほしいみたいな内容でしたが、追加されているようには見えませんでしたし、Mozillaにも載っていませんでしたし、テストしてみてもundefined でした。
なので、これはまあすぐ削除されるかもしれないので使わない方が良いです。

標準ライブラリの構造変更


  • std/encoding/csvstd/csv
  • std/encoding/yamlstd/yaml
  • std/encoding/tomlstd/toml
  • std/encoding/jsonstd/json
  • std/encoding/jsoncstd/jsonc
  • std/encoding/frontmatterがstd/frontmatter


なりました。
つまりはstd/encoding/* std/* に変更になったわけです

Node.jsとの互換性強化

これに関しては内容がこすぎるので、本家のブログをそのままご覧ください。

TypeScript 5.0に更新

これはそのままです。
自分はTSユーザじゃないのでわかんないですが、多分良いことなんですかね?()

V8 11.2に更新

これもそのままです。
少しバグなどが解決されているのなら素晴らしいですね。

おわりに

Denoのアップデートについて紹介しました。

またアップデートしてない方はdeno upgrade コマンドでアップデートしておきましょう。

最新の投稿

スポンサーリンク

kstdx
中学生。自称エンジニア。見せられる程度のデザイン力はあるかなと自負しています。現在Twitterが凍結されている。おかねほしい。