?のような演算子はありますか。 TypeScriptでは、変数がnullであるか、Kotlinのように定義されていないかどうかを確認できますか?いいね
person?.getName()?.firstName ?: "None"
いいえ、現在、安全なナビゲーションオペレータはTypeScriptにまだ実装されていません: https://github.com/Microsoft/TypeScript/issues/16
ただし、最新の標準化会議ノートによると、提案されているため、v3である可能性があります:)
私は同じ状況に遭遇しました、そして、以下は私のために働きました。
最初に、null
にできるプロパティを持つ別のクラスを定義しました。
export class Foo {
id: number; //this can be null
}
次に、メインクラスでプロパティfoo
をこの新しいタイプに設定します。
foo: Foo
その後、次のように使用できました。
var fooId = (this.foo || ({} as Foo)).id;
これは、TypeScriptの現在のバージョンでnull伝播が発生する可能性がある最も近いものです。
実際、これはjavascriptのnull安全に関連しています discussionthis answer で言及されています。彼らはTypeScriptに到達する前にjavascriptでサポートされることを望んでいると思います。
コードでこれを使用してnullをチェックしました
this.firstname = (this.firstname != null) ? this.firstname : this.firstname;
これは、v3がリリースされるまで実行できます。