ページ内ナビ
概要
Yupは、object・string・number・arrayなどのschemaを組み合わせ、入力値の変換と実行時検証を行うlibraryです。schemaからInferTypeでTypeScript型を取り出せるため、form、API response、設定値などの実データと静的型を同じ定義へ寄せられます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
transformとtestを組み合わせて入力値を整形・検証する
Yupのschemaは、入力を目的の型へ変換するtransformと、値が条件を満たすか確認するtestで構成されます。例えば文字列の数値をnumberへ変換してから、positiveやintegerなどの条件を検証できます。
出典:[1]
object schemaからTypeScript型をInferTypeで取り出す
object schemaへfield定義を集約し、InferType<typeof schema>から静的なTypeScript型を生成できます。runtimeの検証条件とapplication側の型を別々に手書きする重複を減らせます。
出典:[1]
向いている用途
form・API入力・設定値を実行時に確かめたいfrontendに向く
TypeScriptの型だけでは保証できないuser input、network response、query parameterなどを実行時に検証し、同時にapplication内で使う型を推論したい場面に適します。
出典:[1]
導入前の確認
validateは既定でtransformを実行するためraw値との差を確認する
Yupはvalidation前にschemaのtransformを適用できます。文字列"24"をnumberへcastするような変換が入るため、入力値を変えずに検証したい場合はstrict: trueを指定してparsingを無効にする必要があります。
出典:[1]
参考にした公式資料
- [1]Yup README at reviewed commit(2026-10-05)
- [2]Yup package metadata at reviewed commit(2026-10-05)
- [3]Yup CHANGELOG at reviewed commit(2026-10-05)
- [4]Yup MIT license(2026-10-05)
編集部からの補足
Yupは検証だけでなく入力値の変換も行えます。API入力やform値をそのまま保持したい箇所では、castとvalidateの変換挙動を確認し、必要ならstrict: trueを使って境界を明確にしてください。
3ステップで試す
- 1
Yup 1.7.1を一時projectへ導入する
reviewed package versionを固定し、他のproject設定に影響しない一時directoryへ導入します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/yup.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact yup@1.7.1 - 2
変換と検証を行うschemaを作る
READMEのschema構成に沿い、文字列のageをnumberへ変換しながらrequired・positive・integerを検証します。
printf "%s\n" "import {object, string, number} from 'yup';" "const UserSchema = object({name: string().required(), age: number().required().positive().integer()});" "const user = UserSchema.validateSync({name: 'Ada', age: '37'});" "console.log(user);" > demo.mjs - 3
Node.jsでschemaを実行する
runtimeでvalidationとtransformが実行され、検証済みvalueが返ることを確認します。
node demo.mjs
成長
成長の推移 · 直近30日
23,660 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 91
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
- Stars
- 23,660
- Forks
- 948
- Watchers
- 76
- Open Issues
- 164
- Contributors
- 149
- 所有者種別
- User
- 主要言語
- TypeScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/10/02
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Expo52,566 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
React NativeアプリをAndroid・iOS・Webへ一つのprojectから展開する
TypeScript - PostCSS28,974 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
CSSをASTへ変換し、JavaScript pluginでbuild時のstyle処理を組み立てる
TypeScript - Type-fest17,433 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
標準Utility Typeでは足りない型変換を再利用できるTypeScript型ライブラリ
TypeScript - typescript-eslint16,408 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
ESLintの推奨ルールとTypeScript解析をFlat Configへまとめて導入する
TypeScript - Faker15,509 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
テストや開発向けに人物・住所・商品など現実らしいダミーデータを大量生成する
TypeScript - Linaria12,350 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
CSS-in-JSのauthoring experienceを保ちつつ、styleをbuild時にstatic CSSへextractする
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。