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