回答編集履歴
1
表現を変えた
answer
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
```js
|
70
70
|
try{
|
71
|
-
|
71
|
+
throw Symbol.for("hoge.fuga.AuthError");
|
72
72
|
}
|
73
73
|
catch(err){
|
74
74
|
console.log(err instanceof Error); // false
|
@@ -78,6 +78,6 @@
|
|
78
78
|
```
|
79
79
|
|
80
80
|
そもそも論ですが、今回やりたいことは例外を作ることではなく、例外を投げて種類に応じて処理を分類することですよね。
|
81
|
-
そういう場合には、わざわざErrorを投げる必要はなくて、種類さえわかれば
|
81
|
+
そういう場合には、わざわざErrorを投げる必要はなくて、種類さえわかれば`Symbol`でもなんでも良いんですよね。そういう時は`Symbol`は他の言語の`Enum`相当の存在であり、相性が良かったりします。
|
82
82
|
|
83
83
|
今回は`Symbol.for`を用いたグローバルシンボルを利用しましたが、もちろんローカルシンボルを用いても可能です。好みで使い分ければ良いと思います。
|