よっしー
こんにちは。よっしーです(^^)
今日は、SvelteKitでの移行について解説しています。
背景
SvelteKitでの移行について調査する機会がありましたので、その時の内容を備忘として記事に残しました。
リダイレクトとエラーは発生しない
以前は、error(...)
とredirect(...)
から返される値を自分でthrow
する必要がありました。SvelteKit 2ではこれは不要となり、関数を呼び出すだけで十分です。
import { error } from '@sveltejs/kit'
// 古い方法
throw error(500, 'something went wrong');
// 新しい方法
error(500, 'something went wrong');
svelte-migrate
がこれらの変更を自動的に行います。
エラーやリダイレクトがtry {...}
ブロック内でスローされる場合(ヒント:これは避けるべき!)、@sveltejs/kit
からインポートしたisHttpError
とisRedirect
を使用して、予期しないエラーと区別することができます。
解説
- 主な変更点
error()
とredirect()
関数の使用方法が簡略化throw
キーワードが不要に- 関数呼び出しだけで機能する
- 移行方法
svelte-migrate
ツールで自動的に変更可能- 古いコードから
throw
キーワードを削除 - 関数呼び出しの形式に統一
- エラー判別方法
isHttpError
:HTTPエラーの判別isRedirect
:リダイレクトの判別- try-catchブロック内での使用は推奨されない
- 注意点
- try-catchブロック内でのエラー処理は避けるべき
- 必要な場合は
isHttpError
とisRedirect
を使用 - より簡潔で明確なエラーハンドリングを心がける
この変更により、コードがよりシンプルで理解しやすくなります。
おわりに
今日は、 SvelteKitでの移行について解説しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント