[解決済み] Typescript は ?演算子をサポートしていますか?(そして、それは何と呼ばれているのでしょうか?)
質問
Typescript は現在(あるいは今後)、以下の機能をサポートしますか?
安全なナビゲーション
演算子の
?.
ie
var thing = foo?.bar
// same as:
var thing = (foo) ? foo.bar : null;
また、この演算子にはもっと一般的な名前があるのでしょうか(ググってもどうしようもなく難しいです)。
どのように解決するのですか?
はい、そうです。 TypeScript 3.7 (リリース日) の時点では 2019年11月5日(木 ) がサポートされ、この機能は オプショナル・チェイニング :
その核心は、オプショナルチェイニングによって、TypeScriptが、ある式の実行中に
null
またはundefined
. オプショナル・チェイニングの主役は、新しい?.
演算子で オプションのプロパティアクセス .
を参照してください。 TypeScript 3.7 リリースノート をご覧ください。
バージョン3.7以前は、TypeScriptではサポートされていませんでしたが、早くから要望があったのは TypeScriptレポのIssue #16 (2014年にさかのぼる)。
に関しては この演算子をどう呼ぶか ということで、コンセンサスは得られていないようです。オプショナル・チェイニング(optional chaining")に加えて(これもまた JavaScriptでは )、他にもいくつかの例があります。
- CoffeeScriptでは 実存的演算子 (具体的には、存在演算子の "accessor variant") があります。
実存演算子のアクセサーバリアント
?.
は、プロパティの連鎖の中で NULL 参照を吸収するために使用できます。ドットアクセッサの代わりに使用します。
.
の場合、基本値は
ヌル
または
未定義
.
- C#ではこれを null-conditional演算子 .
は、null-conditional 演算子でメンバアクセスを適用します。
?.
または要素アクセス。?[]
オペランドが NULL でない場合のみ、そのオペランドに対する操作を返します。null
.
- Kotlinでは セーフコール演算子 .
他にもたくさん例があるはずです。
関連
-
[解決済み】Typescriptで、! (エクスクラメーションマーク/バン)演算子でメンバを再参照するのは?
-
[解決済み] as "というキーワードは何を意味するのでしょうか?
-
[解決済み] Object literal may only specify known properties" というエラーが発生するのはなぜですか?
-
[解決済み] TypeScriptでオブジェクトを初期化する方法
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み] Typescript オブジェクトのインデックス付きメンバの型を強制する?
-
[解決済み] ジェネリックスを使用したTypescriptのarrow関数の構文はどのようになっていますか?
-
[解決済み】TypeScriptとフィールドイニシャライザー
-
[解決済み】TypescriptのArray<Type> VS Type[]について
-
[解決済み] 安全なナビゲーション演算子(?.)または(!)とヌルプロパティパス
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ブロックスコープ付き変数の再宣言ができない(typescript)
-
[解決済み] プロパティ 'values' はタイプ 'ObjectConstructor' に存在しません。
-
[解決済み] Typescript ReferenceError: exports が定義されていません。
-
[解決済み] サービスにDocumentを挿入する方法は?
-
[解決済み] Typescriptでオブジェクトのプロパティを結合する方法は?
-
[解決済み] クラスのプロパティが整数であることはどのように指定するのですか?
-
[解決済み] TypeScriptのクラス型チェック
-
[解決済み] TypeScriptのファイル変更時にts-nodeを監視して再読み込みする方法
-
[解決済み】オブジェクトの配列を定義するにはどうしたらいいですか?
-
[解決済み] 安全なナビゲーション演算子(?.)または(!)とヌルプロパティパス