質問編集履歴
3
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,9 +4,11 @@
|
|
4
4
|
下記のif文の条件節内で型アサーションしてしまったら("(<Fish>pet).swim")
|
5
5
|
それはは必ずtrueになって条件分岐の意味がなくなるのでは?
|
6
6
|
と思いましたが、実行結果はコンソールに ’bird’ と出ます。
|
7
|
-
|
7
|
+
|
8
8
|
常套手段としてはpet.hasOwnProperty('swim')と思うのですが・・・
|
9
9
|
後続の 型述語 のコード内にも同様のものがみられます。
|
10
|
+
|
11
|
+
これは型アサーションではないのでしょうか?
|
10
12
|
ここはどのように理解すべきでしょうか?
|
11
13
|
|
12
14
|
|
2
加筆
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,9 +6,10 @@
|
|
6
6
|
と思いましたが、実行結果はコンソールに ’bird’ と出ます。
|
7
7
|
これは型アサーションではないのでしょうか?
|
8
8
|
常套手段としてはpet.hasOwnProperty('swim')と思うのですが・・・
|
9
|
+
後続の 型述語 のコード内にも同様のものがみられます。
|
9
10
|
ここはどのように理解すべきでしょうか?
|
10
|
-
型アサーションの理解そのものが不安になります
|
11
11
|
|
12
|
+
|
12
13
|
```TypeScript
|
13
14
|
interface Bird {
|
14
15
|
fly(): void;
|
@@ -41,4 +42,11 @@
|
|
41
42
|
console.log("bird");
|
42
43
|
}
|
43
44
|
|
45
|
+
```
|
46
|
+
|
47
|
+
```TypeScript
|
48
|
+
function isFish(pet: Fish | Bird): pet is Fish {
|
49
|
+
return (<Fish>pet).swim !== undefined;
|
50
|
+
}
|
51
|
+
|
44
52
|
```
|
1
加筆
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,8 +7,8 @@
|
|
7
7
|
これは型アサーションではないのでしょうか?
|
8
8
|
常套手段としてはpet.hasOwnProperty('swim')と思うのですが・・・
|
9
9
|
ここはどのように理解すべきでしょうか?
|
10
|
+
型アサーションの理解そのものが不安になります
|
10
11
|
|
11
|
-
|
12
12
|
```TypeScript
|
13
13
|
interface Bird {
|
14
14
|
fly(): void;
|