Update CONTRIBUTING.md

This commit is contained in:
syuilo 2019-04-13 14:34:34 +09:00
parent daf9a449e8
commit 6e284c44d6
No known key found for this signature in database
GPG Key ID: BDC4C49D06AB9D69
1 changed files with 8 additions and 2 deletions

View File

@ -143,7 +143,7 @@ MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`
でもいちいち複数行を費やして、発生するはずのない`undefined`をチェックするのも面倒なので、`ensure`というユーティリティ関数を用意しています。 でもいちいち複数行を費やして、発生するはずのない`undefined`をチェックするのも面倒なので、`ensure`というユーティリティ関数を用意しています。
例えば、 例えば、
``` ts ``` ts
const user = Users.findOne(userId); const user = await Users.findOne(userId);
// この時点で user の型は User | undefined // この時点で user の型は User | undefined
if (user == null) { if (user == null) {
throw 'missing user'; throw 'missing user';
@ -152,7 +152,13 @@ if (user == null) {
``` ```
という処理を`ensure`を使うと という処理を`ensure`を使うと
``` ts ``` ts
const user = Users.findOne(userId).then(esure); const user = await Users.findOne(userId).then(esure);
// この時点で user の型は User // この時点で user の型は User
``` ```
という風に書けます。 という風に書けます。
もちろん`ensure`内部でエラーを握りつぶすようなことはしておらず、万が一`undefined`だった場合はPromiseがRejectされ後続の処理は実行されません。
``` ts
const user = await Users.findOne(userId).then(esure);
// 万が一 Users.findOne の結果が undefined だったら、ensure でエラーが発生するので
// この行に到達することは無い
```