😺
CUEのvalidationで値があった場合にエラーにする
要約
_|_
を使えばOKです。
仕組み
_|_
は「空集合」を表します。
CUEにおけるvalidationは「スキーマの定義」と「データ」を統合したときに矛盾があるかどうかをチェックします。スキーマ側で、『fieldA
は「空集合」だよ』と定義しますと、例えばそのfieldA
に値"テスト"
が入力されていた場合、統合すると次のような状態になります。
fieldA: "_|_"
fieldA: "テスト"
- 項目Aは空集合だよ
- 項目Aの値は"テスト"だよ
という2つの指示が並び立つ状況が発生し、双方が矛盾するためvalidationでエラーとなります。
この仕組みを使うと、例えばあるbool
値の項目がtrue
だった場合に、関連する項目の入力を禁止するといった定義が可能になります。
例
if flag == true {
fieldA: "_|_"
}
if flag == false { // CUEではelse構文が使えないので、対となるif文を別に書きます。
fieldA: string
}
ご参考になれば幸いです。
ではまた!
Discussion