1. ホーム
  2. typescript

[解決済み] Typescript は ?演算子をサポートしていますか?(そして、それは何と呼ばれているのでしょうか?)

2022-03-21 06:22:31

質問

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 参照を吸収するために使用できます。ドットアクセッサの代わりに使用します。 . の場合、基本値は ヌル または 未定義 .

は、null-conditional 演算子でメンバアクセスを適用します。 ?. または要素アクセス。 ?[] オペランドが NULL でない場合のみ、そのオペランドに対する操作を返します。 null .

他にもたくさん例があるはずです。