😺

CUEのvalidationで値があった場合にエラーにする

2022/11/09に公開

要約

_|_を使えば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