[解決済み] 安全なナビゲーション演算子(?.)または(!)とヌルプロパティパス
2022-04-23 10:24:41
質問
Angular 2 のテンプレートでは、安全な演算子
?.
は動作しますが
component.ts
TypeScript 2.0を使用しています。また、安全なナビゲーション演算子(
!.
が動作しない。
例えば
このTypeScript
if (a!.b!.c) { }
はこのJavaScriptにコンパイルされます。
if (a.b.c) { }
しかし、実行すると次のようなエラーが発生します。
未定義のプロパティ 'b' を読み取ることができません。
以下に代わるものはありますか?
if (a && a.b && a.b.c) { }
解決方法は?
TypeScript 3.7から、オプショナルチェイニングが使えるようになりました。
プロパティの例です。
let x = foo?.bar.baz();
と同等である。
let x = (foo === null || foo === undefined)
? undefined
: foo.bar.baz();
さらに、呼び出すことができます。
オプションの呼び出し
function(otherFn: (par: string) => void) {
otherFn?.("some value");
}
otherFn
が呼び出されるのは
otherFn
とは等しくなりません。
null
または
undefined
IF文での使用オプションの連鎖
これは
if (someObj && someObj.someProperty) {
// ...
}
は次のように置き換えることができます。
if (someObj?.someProperty) {
// ...
}
参考 https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html
関連
-
[解決済み] error TS2339: Property 'x' does not exist on type 'Y'.
-
[解決済み] TypeScriptの「as const」の意味とその使用例とは?
-
[解決済み] エラー TS2345: 型 'T' の引数は型 'object' のパラメータに代入できません。
-
[解決済み] クラス定数を実装するには?
-
[解決済み] Typescript は ?演算子をサポートしていますか?(そして、それは何と呼ばれているのでしょうか?)
-
[解決済み] TypeScriptのオブジェクトリテラルでの型定義
-
[解決済み】文字列の値を持つenumの作成
-
[解決済み】Angular 2 beta.17:プロパティ 'map' がタイプ 'Observable<Response>' に存在しない。
-
[解決済み] Angular2 ngSwitchステートメントでtypescriptのenum値を使用する方法
-
[解決済み] HTML内でTypescriptのenumにアプローチできない
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】tsconfigファイルにおけるesModuleInteropの理解
-
[解決済み】プロパティ 'value' が 'HTMLElement' 型の値に存在しない。
-
ts 学習日記1 AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります
-
[解決済み] eslintをtypescriptで使用する - モジュールへのパスを解決できない
-
[解決済み] Typescript ReferenceError: exports が定義されていません。
-
[解決済み] TypeScriptでグローバル変数を作成する
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み] Typescript は ?演算子をサポートしていますか?(そして、それは何と呼ばれているのでしょうか?)
-
[解決済み】ネストされたJavaScriptオブジェクトのキーが存在するかどうかをテストする
-
[解決済み】ブロックに`@ts-ignore`を使用するには?