TypeScriptのコードレビューをしていて、 ! と ? の意味を改めて確認したら意外とややこしかったのでまとめておきます。 ご注意: 本記事では、nullとundefinedを厳密に区別せず、どちらも含めてnon-null/nullableと表現しています。 Optional Paramater Optional Paramater 関数の引数がOptional(省略可能)であることを宣言します。コンパイラはOptional Paramaterが宣言されたとき、その引数の型を T | undefined と認識します。 勘違いしやすいのが、Nullableを宣言するものではないということです。OptionalとNullableの違いは、Optionalの場合は複数の引数があるときにOptionalの引数の後ろにOptionalでない引数を宣言できないという点です。 function