diff options
| author | syuilo⭐️ <Syuilotan@yahoo.co.jp> | 2017-03-03 09:48:06 +0900 |
|---|---|---|
| committer | syuilo⭐️ <Syuilotan@yahoo.co.jp> | 2017-03-03 09:48:06 +0900 |
| commit | 1e1800fd666fce3f06712c005bd63503672cb346 (patch) | |
| tree | 8f8257e1f71c3f307428d79a0cc8f3a46c41e10f /src/api | |
| parent | wip (diff) | |
| download | sharkey-1e1800fd666fce3f06712c005bd63503672cb346.tar.gz sharkey-1e1800fd666fce3f06712c005bd63503672cb346.tar.bz2 sharkey-1e1800fd666fce3f06712c005bd63503672cb346.zip | |
Update it.ts
Diffstat (limited to 'src/api')
| -rw-r--r-- | src/api/it.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/api/it.ts b/src/api/it.ts index 14f6063b24..21cc872a2f 100644 --- a/src/api/it.ts +++ b/src/api/it.ts @@ -26,6 +26,30 @@ * const [val, err] = it(x).expect.string().required().qed(); */ +/** + * null と undefined の扱い + * + * 「値がnullまたはundefined」な状態を「値が空である」と表現しています。 + * 値が空である場合、バリデータやその他の処理メソッドは呼ばれません。 + * + * 内部的にはnullとundefinedを次のように区別しています: + * null ... 値が「無い」と明示されている + * undefined ... 値を指定していない + * + * 例えばアカウントのプロフィールを更新するAPIに次のデータを含むリクエストが来たとします: + * { name: 'Alice' } + * アカウントには本来、他にも birthday といったフィールドがありますが、 + * このリクエストではそれに触れず、ただ単に name フィールドを更新することを要求しています。 + * ここで、このリクエストにおける birthday フィールドは undefined なわけですが、 + * それはnull(=birthdayを未設定にしたい)とは違うものです。 + * undefined も null も区別しないとしたら、触れていないフィールドまでリセットされることになってしまいます。 + * ですので、undefined と null は区別しています。 + * + * 値が空であってほしくない場合は .require() を、 + * 値を必ず指定しなければならない場合(値を「無し」に指定することは許可)は .notUndefined() を、 + * 値の指定をしなくてもいいけど、する場合は「無し」は許可しない場合は .notNull() を使えます。 + */ + import * as mongo from 'mongodb'; import hasDuplicates from '../common/has-duplicates'; |