web-dev-qa-db-ja.com

TypeScriptにはヌル条件演算子がありますか

?のような演算子はありますか。 TypeScriptでは、変数がnullであるか、Kotlinのように定義されていないかどうかを確認できますか?いいね

person?.getName()?.firstName ?: "None"
21
Da Yin

いいえ、現在、安全なナビゲーションオペレータはTypeScriptにまだ実装されていません: https://github.com/Microsoft/TypeScript/issues/16

ただし、最新の標準化会議ノートによると、提案されているため、v3である可能性があります:)

https://github.com/tc39/agendas/blob/master/2017/07.md

18
Loonquawl

私は同じ状況に遭遇しました、そして、以下は私のために働きました。

最初に、nullにできるプロパティを持つ別のクラスを定義しました。

export class Foo {
    id: number; //this can be null
}

次に、メインクラスでプロパティfooをこの新しいタイプに設定します。

foo: Foo

その後、次のように使用できました。

var fooId = (this.foo || ({} as Foo)).id;

これは、TypeScriptの現在のバージョンでnull伝播が発生する可能性がある最も近いものです。

6
Andrii Stashko

実際、これはjavascriptのnull安全に関連しています discussionthis answer で言及されています。彼らはTypeScriptに到達する前にjavascriptでサポートされることを望んでいると思います。

2
ApriOri

コードでこれを使用してnullをチェックしました

this.firstname = (this.firstname != null) ? this.firstname : this.firstname;

これは、v3がリリースされるまで実行できます。

2
Ebuka