TypeScriptの変数の空判定

TypeScriptの空判定

TypeScriptで変数が空かどうかを判定するための方法を記載します。
一般的には以下のような方法があります。
結論から言えば、TypeScriptだからと言ってあまり特別なことはないですね。

1. null または undefined のチェック

let value: any = ...;

if (value === null || value === undefined) {
   console.log("valueはnullか未定義です");
}

2. 空文字列のチェック:

let value: string = ...;

if (value === "") {
   console.log("valueは空です");
}

3. 配列の空チェック:

let value: any[] = ...;

if (value.length === 0) {
   console.log("配列の要素が空です");
}

4. オブジェクトの空チェック:

let value: object = ...;

if (Object.keys(value).length === 0) {
   console.log("オブジェクトの要素が空です");
}

どの方法を使用するかは、変数の種類によりますね。
場合によっては、特定のデータ型に特化したチェックを行う方が効率的です。

if (!value) でも空文字判定はできるのか

もちろん if (!value)を使った空判定はできますが、すべてのケースに対応するわけではないので注意事項はあります。
具体的には、if (!value)は以下のような値をtrueとして判定します。

  • null
  • undefined
  • 0
  • false
  • ""(空文字)
  • NaN

上記のように数値の0やfalseも空と判定されてしまうため、その点は注意が必要です。
なので、確実に判定したい場合にはより厳密なチェックを行った方が安全です。
変数の型や処理によって、どのように書くか決めましょう。