回答編集履歴
2
注意点に補足
test
CHANGED
@@ -6,4 +6,4 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
`T`や`U`に関数でない`hasOwnProperty`がセットしてあるという危険性も考えると、`result.hasOwnProperty`に頼るのは適当ではありません。`Object.prototype.hasOwnProperty.call`を使ってください。
|
9
|
+
さらに言えば、`T`や`U`に関数でない`hasOwnProperty`がセットしてあるという危険性も考えると、`result.hasOwnProperty`に頼るのは適当ではありません。`Object.prototype.hasOwnProperty.call`を使ってください(これはTypeScriptでないJavaScriptを書く際にも共通します)。
|
1
一部おかしかったので修正
test
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
そういうのとは関係なく、これは**コードの書き方が悪い**です。実際に`T`や`U`へ`Object.create(null)`などで作った`hasOwnProperty`のないオブジェクトを渡せる以上、`result.hasOwnProperty`は**呼べないこともある**前提で書く必要があります。
|
5
|
+
そういうのとは関係なく、これは**コードの書き方が悪い**です。実際に`T`や`U`へ`Object.create(null)`などで作った`hasOwnProperty`のないオブジェクトを渡せる以上、~~`result.hasOwnProperty`は**呼べないこともある**前提で書く必要があります。~~`T & U`型に`hasOwnProperty`があることは保証されません。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
`Object.prototype.hasOwnProperty.call`を使ってください。
|
9
|
+
`T`や`U`に関数でない`hasOwnProperty`がセットしてあるという危険性も考えると、`result.hasOwnProperty`に頼るのは適当ではありません。`Object.prototype.hasOwnProperty.call`を使ってください。
|