Frontend Weekly 2025-03-07
Interop 2025, Chrome 134, TypeScript 5.8, Next.js 15.2, Lynxなど
- # Interop 2025
- # Chrome 134
- # TypeScript 5.8
- # Next.js 15.2
- # Lynx
Interop 2025
ウェブの相互運用性を向上させるためにブラウザベンダーが協力して取り組みInteropプロジェクトの2025年版、Interop 2025が発表された。
https://web.dev/blog/interop-2025
Focus areasとして次の項目を挙げている。
- Anchor positioning
- backdrop-filter
- Core Web Vitals
<details>
element- Layout
- Modules
- Navigation API
- Pointer and mouse events
- Remove mutation events
- @scope
- scrollend event
- Storage Access API
- text-decoration
- URLPattern
- View Transition API
- WebAssembly
- Web compat
- WebRTC
- Writing modes
また調査対象として、次の項目を挙げている。
- Accessibility testing
- Gamepad API testing
- Mobile testing
- Privacy testing
- WebVTT
Chrome 134
Chrome 134がリリース。
https://developer.chrome.com/release-notes/134?hl=ja
https://developer.chrome.com/blog/new-in-chrome-134?hl=ja
次の変更などが含まれる。
dialog
要素の閉じ方を制御するclosedby属性の追加none
: ユーザーの操作の閉じないcloserequest
: ESCなどユーザーの操作で閉じるany
: 外側のクリック、ESCなどユーザーの操作で閉じる
- CSSハイライトの継承
- 従来は
::selection
や::highlight
などのスタイルが継承されず、子要素が入るとハイライトのスタイルがリセットされていた。
- 従来は
- カスタマイズ可能な
<select>
要素- https://developer.chrome.com/blog/rfc-customizable-select?hl=ja
appearance: base-select
を指定することで、<select>
要素を完全に制御できる
- Shared StorageにWeb Locks APIが統合
- サイト間で同じデータにアクセスできるShared Storageでは、データ競合の発生する可能性がある。
- Web Locks APIによって、排他制御やバッチ処理が可能になった。
- PaintCanvasにimageSmoothingQuality属性が追加
- canvasに表示された画像を拡大縮小する際の品質を制御できる。
またDevToolsには次の変更などが含まれる。
- サードパーティCookieの制限をテストする機能の追加
:open
など複数の疑似グラス/要素の切り替えをサポート- 全てのコンソールメッセージをコピーする機能の追加
https://developer.chrome.com/blog/new-in-devtools-134?hl=ja
TypeScript 5.8
TypeScript 5.8がリリース。
https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/
次の変更などが含まれる。
- require(esm)のサポート
- Node.js v22でサポートされたrequire(esm)を、
--module nodenext
でサポートした。
- Node.js v22でサポートされたrequire(esm)を、
erasableSyntaxOnly
フラグの追加- Node.js v22ではTypeScriptをそのまま実行できる
experimental-strip-types
フラグが追加され、Node.js v23ではフラグなしで実行できるようになっている。 erasableSyntaxOnly
フラグを利用すると、単純な型注釈では削除できないenum
やnamaespace
などの構文をエラーとして扱うことが出来る。
- Node.js v22ではTypeScriptをそのまま実行できる
libReplacement
フラグの追加- TypeScriptには標準の型定義を差し替える仕組みがあり、このために常にnode_modulesを監視している。
libReplacement
フラグを利用することで、この挙動を無効化し負荷を軽減できる。- 今後デフォルトがfalseになる可能性があるため、利用している場合は明示的に設定することが推奨されている。
Next.js 15.2
Next.js 15.2がリリース。
https://nextjs.org/blog/next-15-2
次の変更などが含まれる。
- エラーUIとスタックトレースの刷新
- メタデータのストリーミング
- 非同期なページ遷移を行った際に動的なメタタグを埋め込むAPI
generateMetadata
によってブロッキングが発生していた。 - このAPIがストリーミングされるようになったためパフォーマンスの改善が見込まれる。
- 非同期なページ遷移を行った際に動的なメタタグを埋め込むAPI
また実験的な機能として次も含まれる。
- React View Transitions APIの追加
- Reactに実験的に追加された
<ViewTransition>
コンポーネントを利用できるようになる。 <ViewTransition>
はページ遷移時のアニメーションを制御するView Transition APIをラップしたもの。
- Reactに実験的に追加された
- Node.js Middlewareの追加
- 今まではEdge runtimeのみのサポート。Node.jsでも動かすことは出来たが機能は限定されていた。
Lynx
ByteDanceがReact/CSSを使ってiOS/Android/Webアプリを開発できるツールキットLynxを公開。
https://lynxjs.org/blog/lynx-unlock-native-for-more.html
https://github.com/lynx-family/lynx
LynxのReact実装は、React v17及びPreactと互換性があるとのこと。
https://lynxjs.org/api/react/index.html#react-apis
またLynxは、QuickJSをベースにした独自のPrimJSというJavaScriptエンジンをランタイムとして使用している。*
https://lynxjs.org/guide/scripting-runtime/index.html
*iOSの場合、バックグラウンドスレッドではJavaScriptCoreをデフォルトでは使用する。