null
とundefined
はTypeScriptのすべての型に代入できます。null
かundefined
を代入できるか、できないかを明示することができます。null
とundefined
は異なります:Member
インターフェースを持っているとしましょう:Member
が彼らの年齢を提供するわけではないので、age
はオプションのプロパティです。 age
の値はundefined
かもしれません。undefined
はすべての悪の根です。ランタイムエラーが発生することがよくあります。実行時にError
をスローするコードを書くのは簡単です:!
ポストフィックス式演算子を使用して、型チェッカーが結論付けられないコンテキストにおいて、そのオペランドが非nullでかつ非undefinedであることをアサートすることができます。例えば:これは単なるアサーションであり、型アサーションと同じように、あなたは値がnullでないことを確認する責任があることに注意してください。非nullアサーションは、本質的にはコンパイラに"それはnullでないことが分かっているから、nullではないものとして使います"と伝えるものです。
すべてのアサーションと同様に、コンパイラにあなたを信頼するように指示しています。コンパイラは、コードが実際にプロパティを常に割り当てていなくても、エラーを出すことはありません。