TypeScriptのメソッドgetY()
でオブジェクトX
を返すメソッドa()
を持つオブジェクトY
があります。このような表現はどういう意味ですか?
X.getY()!.a()
!
演算子はnullをチェックするために使用されますが、具体的にどのように機能しますか?言語のどこで定義されていますか?
これは「非ヌル表明演算子」と呼ばれ、x.getY()
がヌルではないことをコンパイラーに伝えます。
これはTypeScript 2.0の新しい機能であり、 新機能 ページで確認できます。これは次のとおりです。
新しい!修正後の式演算子を使用して、型チェッカーがその事実を結論付けることができないコンテキストで、そのオペランドがnullでなく、未定義であることをアサートできます。具体的には、操作x! nullおよび未定義の除外を含むx型の値を生成します。 Tとしてのxとxの形式の型アサーションと同様に、!非ヌルのアサーション演算子は、発行されたJavaScriptコードで単純に削除されます。
// Compiled with --strictNullChecks
function validateEntity(e?: Entity) {
// Throw exception if e is null or invalid entity
}
function processEntity(e?: Entity) {
validateEntity(e);
let s = e!.name; // Assert that e is non-null and access name
}