この変更が意味すること
Svelte 5.56.4 は4件のバグ修正を含むパッチリリースです。リアクティビティの挙動に関わる修正が含まれており、{@const} ブロックや TypeScript の <script lang="ts"> を使用している場合に動作改善が見込めます。
特に TypeScript のオプショナルパラメータ(?)が生成 JavaScript に残ってしまうバグ(#18448)は、<script lang="ts"> を使用するすべての Svelte プロジェクトに影響する可能性があるため、確認をおすすめします。
主な変更点
{@const} 宣言の end 位置に括弧を含める修正
fix: include wrapping parentheses in {@const} declarator end position (PR #18436)
{@const} 宣言において、値が括弧で囲まれている場合に end 位置が括弧を含まず内側のみを指していた問題を修正しました。ツール連携(言語サービス・フォーマッターなど)での位置情報の精度が向上します。
リアクティビティコンテキストのリセット漏れを修正
fix: always unset reactivity context after restoring it (PR #18453)
リアクティビティコンテキストをリストアした後、正しくリセットされないケースがあった問題を修正しました。予期しないリアクティビティの漏れが原因で起きていた副作用のバグが解消されます。
URL変更時の不要な searchParams 通知を抑制
fix: don't notify searchParams subscribers when the URL changes without affecting the search string (PR #18425)
URL が変わっても searchParams(クエリ文字列)が変化していない場合に、サブスクライバーへの不要な更新通知が発生していた問題を修正。これにより不要な再レンダリングが防止され、パフォーマンスが改善します。
TypeScript オプショナルパラメータの JS 生成バグを修正
fix: strip ? from optional parameters in <script lang="ts"> so generated JavaScript is valid (PR #18448)
<script lang="ts"> 内で ? を使ったオプショナルパラメータ(例: function foo(bar?: string))を定義した場合、生成される JavaScript に ? が残ってしまい無効な JS になるバグを修正しました。TypeScript を使った Svelte プロジェクトでは影響する可能性があります。
<!-- 修正前: 生成JSが無効になるケース -->
<script lang="ts">
function greet(name?: string) {
return `Hello ${name ?? 'World'}`;
}
</script>
EOL / サポート状況
Svelte は endoflife.date での公式サポートサイクル追跡はありませんが、現在 v5 系が最新のアクティブブランチです。v4 以前はメンテナンスモードのみとなっています。
| バージョン | 状態 | 最新パッチ |
|---|---|---|
| 5.x | active | 5.56.4(本リリース) |
| 4.x | maintenance | — |
開発者への影響
<script lang="ts">でオプショナルパラメータを使用している場合 — 生成 JS が無効になるバグが解消されます。アップデートを推奨します。- URL とクエリ文字列を使ったリアクティブな処理 — 不要な再レンダリングが抑制されパフォーマンスが向上します。
{@const}を多用しているコンポーネント — 言語サービスとの連携精度が向上します。- 複雑なリアクティビティを持つコンポーネント — コンテキストリセット漏れによる副作用が解消される可能性があります。
アップデート方法
# npm でアップデート
npm update svelte
# バージョンを指定してインストール
npm install svelte@5.56.4
# 確認
npx svelte --version
データソース: GitHub Releases API
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
