[解決済み] オブジェクトプロパティアクセスのためのオプションチェーニング演算子の使用
2023-05-22 02:59:15
質問
TypeScript 3.7では オプションの連鎖演算子 . したがって、次のようなコードを書くことができる。
const value = a?.b?.c;
つまり、この演算子を使ってオブジェクトのプロパティにアクセスすることができます。オブジェクト自体は
null
または
undefined
. さて、私がやりたいことは基本的に同じですが、プロパティ名は動的なものです。
const value = a?[b]?.c;
しかし、そこでシンタックスエラーが発生します。
エラー TS1005: ':' が予想されます。
私はここで何を間違えているのでしょうか?これは可能なのでしょうか?
追記 提案 は、これが不可能であることを暗示しているように思えますが、どうでしょうか?(しかし、多分私は構文の例を間違っている)。
どのように解決するのですか?
ブラケット記法とオプショナルチェーンを使ってプロパティにアクセスする場合、ブラケットに加えてドットを使用する必要があります。
const value = a?.[b]?.c;
という構文が採用されています。
TC39 の提案
で採用された構文で、そうしないとパーサーがこの
?
が三項表現の一部なのか、あるいはオプショナルチェイニングの一部なのかをパーサーが理解するのは難しいからです。
私の考え方:オプショナルチェイニングの記号は
?
であり、それは
?.
. オプショナルチェーンを行っている場合は、常に両方の文字を使うことになります。
関連
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] JavaScript でオブジェクトが特定のプロパティを持つかどうかを確認するにはどうすればよいですか?
-
[解決済み] オブジェクトのプロパティを値でソートする
-
[解決済み] 変数を使用してオブジェクトのプロパティに動的にアクセスする
-
[解決済み] Javascriptオブジェクトの最初のプロパティにアクセスする方法は?
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] CORS: 認証モードは 'include' です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?