react-router-typesafe-routes
こんな感じでroutingの定義をする
code:ts
import { route, number, boolean, hashValues } from "react-router-typesafe-routes/dom";
const ROUTES = {
USER: route(
"user/:id",
{
// 一部またはすべてのパスパラメータを上書きすることができます。ここでは、'id'を上書きしています。
// 不在または無効なパラメータの場合にエラーがスローされることを指定します。
// これはデモンストレーションの目的のみのため、通常はスローするべきではありません。
params: { id: number().defined() },
// これらは検索パラメータです。
// 不在または無効なパラメータの場合に使用するデフォルト値を指定します。
searchParams: { infoVisible: boolean().default(false) },
// これらは状態フィールドで、検索パラメータに似ています。
// デフォルトでは、不在または無効なパラメータの場合に'undefined'が返されます。
state: { fromUserList: boolean() },
// これらは許可されるハッシュ値です。
// 任意のハッシュが許可されていることを示すためにhashValues()を使用することもできます。
hash: hashValues("info", "comments"),
},
// これは子ルートで、すべての親パラメータを継承します。
// それが大文字で始まる必要があることに注意してください。
// リマインダとして、そのパスパラメータはパターンから推測されます。
{ DETAILS: route("details/:lang?") }
),
};