Deno v1.43
Deno v1.43がリリースされました。 この記事では主な変更点などについて解説します。 HTTPサーバー deno serveコマンド HTTPサーバーの起動を簡略化するためにdeno serveコマンドが追加されました。 使い方などについてはこちらのページを参照いただければと思います。 公式ブログによると、将来的にはロードバランシングなどの仕組みをdeno serveコマンドに導入することなども検討されているようです。 Request.signalのサポート Deno.serveのハンドラーに渡されるRequestオブジェクトでsignalプロパティがサポートされています。 これについても詳細はこちらのページを参照いただければと思います。 Deno.HttpServer.addr Deno.HttpServerにaddrプロパティが追加されています。HTTPサーバーの起動ポートなどを確認できます。 const server = Deno.serve((req) => new Response("OK")); console.info(server.addr.port); // => 8000 TypeScript compilerOptions.jsxImportSourceTypes deno.jsonにcompilerOptions.jsxImportSourceTypesというDeno独自のオプションが導入されました。 { "compilerOptions": { "jsx": "react-jsx", "jsxImportSource": "npm:react@18.3.1", "jsxImportSourceTypes": "npm:@types/react@18.3.1" } } JSX Transformを有効化した場合、TypeScriptは<some-jsx-package>/jsx-runtimeをimportするようなコードを生成します。 // 例) Reactの場合、以下のようなコードが生成されます import {jsx as _jsx} from 'react/jsx-runtime'; // ... 元々、この<some-jsx-package>/jsx-runtimeのimportに対して適用すべき型定義を判断する方法がDenoには存在せず、JSX Transformを有効化してReactなどを使う場合に型エラーが発生する課題がありました。(TypeScriptによって自動生成されるコードのため@deno-typesプラグマを適用することもできない) この課題を解消するため、compilerOptions.jsxImportSourceTypesが導入されたようです。このオプションを指定することで、上記のような<some-jsx-package/jsx-runtimeのimportに対して、Denoがどの型定義を適用すればよいか判断できるようになります。また、@jsxImportSourceなどと同様に、ソースコード内で@jsxImportSourceTypesプラグマを指定することも可能です。 /** @jsxImportSourceTypes npm:@types/react@18.3.1 */ Preactの場合はパッケージ内に型定義が同梱されているのでこの問題が起きなかったようなのですが、Reactの場合は@types/reactで別管理されている関係もあり、専用の解決策が必要と判断されて導入されたようです。 https://github....