1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

nullを許可しないとき、空文字は許容される?

1
Last updated at Posted at 2026-02-23

ユーザーの入力フォームを作成した時、ふと疑問に思いました。

バックエンドでnullable: falseのようにnullを許容しない設定にしている時、
ユーザーが空文字("")を送ってきたら、それはnullable: falseに引っかかる?
または、" "のような空白文字を入力してきたら?

この場合、結論から言うとnullを許可しない設定でも、
nullable: falseの制約には引っかかりません。

nullとは?

「値が存在しない」ことを表す値です。
文字列が空とか、長さ0とかではなく存在しないんです。

空文字("")とは?

let name: string = "";

↑のように、長さ0の文字列。

これはnullとは別物なので、nullを許容しない場合でも認められます。

空白文字(" ")はspaceやtabという文字が入力されているので、
こちらもnullではありませんね。

紙はあるけど何も書いていない状態が空文字だとすれば、
紙がそもそもない状況がnullです。
(と誰かが例えていました)

でも、現実問題、
フォーム入力では、""は実質的に未入力とみなしたり、
trim()して空白だけならエラーにするといった
バリデーションを行うことがほとんどなんじゃないかなと思います。

最後にちょっぴり

業務ではTypeScriptを使用しているため、今回はTSで実用的な範囲にしぼってまとめました!
C言語まで踏み込むとポインタやヌル文字、スペースとタブの違いなどさらに深く語れる部分もあるかとは思いますが、今回はスコープ外ということで...

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?