boolean型とは何か
boolean型は、「真か偽か」を表すための型です。
取れる値はたった2つ、true(真)か false(偽)だけ。
「ログインしているか?」「在庫はあるか?」「エラーが起きたか?」のような、イエス/ノーで答えられる情報を扱うときに使います。
let isLoggedIn: boolean = true;
let hasStock: boolean = false;
let isError: boolean = false;
TypeScriptここで宣言された変数はすべて「真偽値専用の箱」です。
あとから数値や文字列を入れようとすると、TypeScriptがコンパイル時に止めてくれます。
boolean型と条件分岐の関係
if文とboolean型
boolean型が一番よく使われるのは、if文との組み合わせです。
条件式の結果としてtrueかfalseが返ってきて、その値によって処理を分けます。
const isLoggedIn: boolean = true;
if (isLoggedIn) {
console.log("マイページを表示します");
} else {
console.log("ログイン画面にリダイレクトします");
}
TypeScriptif (isLoggedIn) の部分は、「isLoggedIn が true なら…」という意味です。boolean型を使うことで、「この変数は条件判定に使うフラグなんだな」とすぐに分かります。
比較演算の結果もboolean型
比較演算(===, >, < など)の結果も、必ずboolean型になります。
const score: number = 80;
const isPassed: boolean = score >= 60;
console.log(isPassed); // true
if (score >= 60) {
console.log("合格です");
} else {
console.log("不合格です");
}
TypeScriptscore >= 60 の部分は、「score が 60 以上なら true、そうでなければ false」というbooleanです。
それをそのまま変数に入れてもいいし、ifの条件として直接使ってもOKです。
boolean型に型注釈を付ける意味
「ここは真偽値だけ」という約束
TypeScriptでは、変数にboolean型を付けることで、「この変数は true / false だけを扱う」と宣言できます。
let isActive: boolean = false;
isActive = true; // OK
// isActive = 1; // エラー
// isActive = "true"; // エラー
TypeScriptisActive: boolean と書くことで、「ここはフラグ用の変数です」とコンパイラに伝えています。
数値や文字列を入れようとすると、その場でエラーになり、「フラグのつもりが別の型になっていた」という事故を防げます。
型推論でもbooleanになる
初期値が true か false なら、型注釈を書かなくても自動的にbooleanと推論されます。
let isAdmin = false; // boolean と推論される
// isAdmin = 1; // エラー
TypeScriptこの場合も、「この変数は真偽値として扱う」という前提がコンパイラに伝わっているので、他の型を代入しようとすると止めてくれます。
「truthy / falsy」とboolean型の違い
JavaScriptのゆるさと、TypeScriptのきびしさ
JavaScriptでは、ifの条件にboolean以外の値も書けてしまいます。
たとえば、0 や ""(空文字)は「偽っぽい値(falsy)」として扱われ、1 や "hello" は「真っぽい値(truthy)」として扱われます。
if (0) {
console.log("実行されない");
}
if ("hello") {
console.log("実行される");
}
TypeScriptこれは便利な反面、「本当にbooleanとして扱いたいのか?」「たまたまfalsyなだけじゃないか?」というバグの温床にもなります。
TypeScriptでboolean型をしっかり使うと、「ここは true / false だけ」「数値や文字列をそのまま条件に使わない」というスタイルに自然と寄せられます。
const count: number = 0;
// if (count) { ... } ではなく
const hasItems: boolean = count > 0;
if (hasItems) {
console.log("1件以上あります");
}
TypeScriptこう書くと、「count が 0 より大きいかどうか」という意図がはっきりし、hasItems が「あるかどうか」のフラグであることも明確になります。
関数とboolean型の組み合わせ
「はい/いいえ」を返す関数
boolean型は、「条件を判定して結果を返す関数」と相性がいいです。
function isAdult(age: number): boolean {
return age >= 18;
}
const age = 20;
if (isAdult(age)) {
console.log("大人として扱います");
} else {
console.log("未成年として扱います");
}
TypeScriptisAdult の戻り値の型を boolean にしておくことで、「この関数は true / false を返す判定関数なんだな」と一目で分かります。
戻り値の型を明示しておくと、うっかり文字列や数値を返してしまったときにコンパイルエラーで気づけます。
初心者がまず身につけたいboolean型の感覚
boolean型は、「状態をフラグで表す」ための基本の道具です。
ログインしているか、エラーがあるか、在庫があるか、権限があるか——こういうものは全部booleanで表現できます。
意識してほしいのは、次のような感覚です。
「はい/いいえ」で答えられる情報は、boolean型の変数にする。
変数名は isXxx, hasXxx, canXxx のように、「true のとき何を意味するか」が分かる名前にする。
数値や文字列をそのまま条件に使うのではなく、「比較してbooleanにしてから使う」。
このあたりを丁寧にやるだけで、コードの読みやすさも、バグの少なさもかなり変わります。
