回答編集履歴

3

修正

2022/01/12 10:03

投稿

umau
umau

スコア831

test CHANGED
@@ -7,7 +7,7 @@
7
7
  上記は、左辺が`undefined`、`false`、`0`なら"B"、という、javascriptからある書き方です。なので、
8
8
 
9
9
  ```typescript
10
- if(what.type === "A" || "B~~") {
10
+ if(what.type === "A" || "B") {
11
11
  ```
12
12
  ~~これは常に"A"と比較してる事になります。~~
13
13
  これは what.type === "A" が `false` の場合に"B"(つまり常に`true`) という式になります。

2

2022/01/12 09:56

投稿

umau
umau

スコア831

test CHANGED
@@ -1,43 +1,22 @@
1
1
  これは型がどうというワケではなく、単に文字列比較をしているコードだと思います。
2
2
 
3
+ ```typescript
4
+ const hoge = "A" || "B"
5
+ ```
3
6
 
7
+ 上記は、左辺が`undefined`、`false`、`0`なら"B"、という、javascriptからある書き方です。なので、
4
8
 
5
9
  ```typescript
6
-
7
- const foo = "A"
8
-
9
- const hoge = foo || "B"
10
+ if(what.type === "A" || "B~~") {
10
-
11
11
  ```
12
-
13
-
14
-
15
- 上記は、foo が`undefined`、`false`、`0`なら"B"、という、javascriptの書き方です。なので、
16
-
17
-
18
-
19
- ```typescript
20
-
21
- if(what.type === "A" || "B") {
22
-
23
- ```
24
-
25
- これは常に"A"と比較してる事になります。
12
+ ~~これは常に"A"と比較してる事になります。~~
26
-
13
+ これは what.type === "A" が `false` の場合に"B"(つまり常に`true`) という式になります。
27
-
28
14
 
29
15
  文字比較としてなら、以下のように書けます。
30
-
31
16
  ```typescript
32
-
33
17
  if(["A", "B"].includes(what.type)){
34
-
35
18
  ....
36
-
37
19
  } else {
38
-
39
20
  ....
40
-
41
21
  }
42
-
43
22
  ```

1

修正

2022/01/11 17:31

投稿

umau
umau

スコア831

test CHANGED
@@ -4,13 +4,15 @@
4
4
 
5
5
  ```typescript
6
6
 
7
+ const foo = "A"
8
+
7
- const hoge = "A" || "B"
9
+ const hoge = foo || "B"
8
10
 
9
11
  ```
10
12
 
11
13
 
12
14
 
13
- 上記は、左辺が`undefined`、`false`、`0`なら"B"、という、javascriptからある書き方です。なので、
15
+ 上記は、foo が`undefined`、`false`、`0`なら"B"、という、javascript書き方です。なので、
14
16
 
15
17
 
16
18