TypeScript | 基礎文法:変数・基本型 – boolean型

TypeScript
スポンサーリンク

boolean型とは何か

boolean型は、「真か偽か」を表すための型です。
取れる値はたった2つ、true(真)か false(偽)だけ。
「ログインしているか?」「在庫はあるか?」「エラーが起きたか?」のような、イエス/ノーで答えられる情報を扱うときに使います。

let isLoggedIn: boolean = true;
let hasStock: boolean = false;
let isError: boolean = false;
TypeScript

ここで宣言された変数はすべて「真偽値専用の箱」です。
あとから数値や文字列を入れようとすると、TypeScriptがコンパイル時に止めてくれます。


boolean型と条件分岐の関係

if文とboolean型

boolean型が一番よく使われるのは、if文との組み合わせです。
条件式の結果としてtruefalseが返ってきて、その値によって処理を分けます。

const isLoggedIn: boolean = true;

if (isLoggedIn) {
  console.log("マイページを表示します");
} else {
  console.log("ログイン画面にリダイレクトします");
}
TypeScript

if (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("不合格です");
}
TypeScript

score >= 60 の部分は、「score が 60 以上なら true、そうでなければ false」というbooleanです。
それをそのまま変数に入れてもいいし、ifの条件として直接使ってもOKです。


boolean型に型注釈を付ける意味

「ここは真偽値だけ」という約束

TypeScriptでは、変数にboolean型を付けることで、「この変数は true / false だけを扱う」と宣言できます。

let isActive: boolean = false;
isActive = true;   // OK
// isActive = 1;   // エラー
// isActive = "true"; // エラー
TypeScript

isActive: boolean と書くことで、「ここはフラグ用の変数です」とコンパイラに伝えています。
数値や文字列を入れようとすると、その場でエラーになり、「フラグのつもりが別の型になっていた」という事故を防げます。

型推論でもbooleanになる

初期値が truefalse なら、型注釈を書かなくても自動的に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("未成年として扱います");
}
TypeScript

isAdult の戻り値の型を boolean にしておくことで、「この関数は true / false を返す判定関数なんだな」と一目で分かります。
戻り値の型を明示しておくと、うっかり文字列や数値を返してしまったときにコンパイルエラーで気づけます。


初心者がまず身につけたいboolean型の感覚

boolean型は、「状態をフラグで表す」ための基本の道具です。
ログインしているか、エラーがあるか、在庫があるか、権限があるか——こういうものは全部booleanで表現できます。

意識してほしいのは、次のような感覚です。

「はい/いいえ」で答えられる情報は、boolean型の変数にする。
変数名は isXxx, hasXxx, canXxx のように、「true のとき何を意味するか」が分かる名前にする。
数値や文字列をそのまま条件に使うのではなく、「比較してbooleanにしてから使う」。

このあたりを丁寧にやるだけで、コードの読みやすさも、バグの少なさもかなり変わります。

タイトルとURLをコピーしました