コンパイラかく語りき

import { Fun } from 'programming'

yup

yup で true が選択されていることのバリデーション(規約同意など)

yup

スキーマバリデーションの yup の話です。 例えば、会員登録時の規約の同意など、必ず true になってほしい項目があります。 その際のスキーマ定義は以下の通り。 yup.object({ accept_terms: yup.boolean().default(false).isTrue('同意が必要です') }) isT…

yup で require なフィールドを持つオブジェクト自体を optional にする方法

yup

スキーマバリデーションのライブラリである yup の話です。 以下のようなネストになったスキーマがあるとします。 yup.object({ foo: yup.object({ bar: yup.string.require() }) }) foo は require ではないので任意項目のはずです。しかし、内部の bar が …

【TypeScript】yup のカスタムバリデータを追加する

yup でカスタムバリデータを追加する方法です。 サンプルとして「日付っぽい文字列かどうか」のバリデータを追加しました。 Dateライブラリには dayjs を利用しています。 import * as yup from 'yup'; import dayjs from 'dayjs'; import customParseFormat…

yup のバリデーションで min 指定でも optional にする方法

yup

スキーマバリデーションの yup の話です。 github.com ※この記事執筆時点での yup のバージョンは 1.1.1 となります。 文字列の最小文字数を指定するには、 min を使います。 const schema = yup.object().shape({ password: yup.string().default('').min(8…