変数を介してオブジェクトのプロパティを取得する場合:
リーリーsomeField
(文字列) が 未定義
(初期化されていない文字列値の結果である可能性があります) である可能性があります。私の実験によると、考えられるすべてのタイプのオブジェクトについて、結果は 未定義
、つまり次のようになります。
リーリー
に書き換えることです。 リーリー
しかし、プロパティunknown にアクセスしようとするたびに
unknown が返されることが保証されているなら、私は簡潔な方法を本当に好みます。
いいえ、
の場合、プロパティ値が返されます。obj[未定義]
にアクセスしても、必ずしもunknown
が返されるわけではありません。プロパティ名として使用される他の値と同様に、unknown
は (シンボルでない限り) 文字列にキャストされるため、実際には「unknown」という名前のプロパティにアクセスします。obj[未定義]
は、obj["未定義"]
またはobj.unknown
と同等です。そのようなプロパティが存在する場合、たとえばobj = {unknown: true};
.本当に書くべきです
リーリーIf
someField: 未定義 |String
。