Tsで定数の最後につける!マークの意味は?
今回TypeScriptにおいて最後につける!マークの意味に疑問が出たので調べました。
const task = taskList.shift()! <- この最後の!部分
結論
taskList.shift()! におけるビックリマーク(!)は非null表明演算子(Non-null assertion operator)と呼ばれます。これは TypeScript の特殊な機能で、開発者がその式が null または undefined でないことを保証するために使用します。
この例では、taskList.shift() の結果は null または undefined になる可能性があります(配列から要素をすべて取り出した後など)。しかし、ビックリマークを使用することで、「この結果は絶対に null または undefined にならない」とTypeScriptコンパイラに伝えています。
注意点
ただし、この演算子を使用する際は注意が必要です。それは開発者自身がその結果が絶対に null や undefined にならないと確信している場合にのみ使用するべきです。なぜなら、もし null または undefined が実際に返された場合、ランタイムエラーが発生する可能性があるからです。