Non-null assertion operator [!.](typescript)

JavaScript

コード上からはNon-Nullであることが保証できないが、実態上ではNull or Undefinedが入ることがない場合に、型チェックにNullでないことを明示するために利用します。

以下の例ではquerySelectorはnullの可能性がありますが、前提とするHTML上に当該IDのDOMがある場合、!. を付けることで警告を解消できます。

!. は非常に検索性が悪く、キーワードを知ってないとピンポイントに検索できません。
特に素のjavascriptのoptional chaining(?.)っぽい書き方なので、Typescript特有ってことに気付かないと検索の沼にハマりそう。

そしてeslint併用してるとrecommended設定ではnon-null assertionが禁止されているので、以下のような警告が出ます。

eslintのrulesにこれを追加して回避しましょう。

 "@typescript-eslint/no-non-null-assertion": "off"
Documentation - TypeScript 2.0
TypeScript2.0ReleaseNotes

コメント