ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
Boolean (真偽値: true/false)
TypeScriptのboolean型は、true(真)か false(偽)のどちらか一方だけを値に取るプリミティブ型です。条件分岐(if)やループの継続判定、フラグ管理など、「はい/いいえ」で表せるあらゆる状態をこの型で扱います。型注釈は小文字の boolean を使い、大文字の Boolean(ラッパーオブジェクト型)を型として書くのは避けるのが鉄則です。
| この記事の要点 |
|---|
|
boolean型とは
boolean(ブーリアン、真偽値)は、論理的な「真」と「偽」を表すデータ型です。TypeScriptでは取りうる値が true と false のリテラル2つに限定されており、数値や文字列のように無数の値を持つことはありません。この性質から、ある条件が成立しているかどうかを表現するのに適しています。
名称は19世紀の数学者ジョージ・ブール(George Boole)にちなみます。TypeScriptの boolean 型は、実行時にはJavaScriptのプリミティブ値 true / false としてそのまま扱われます。
|
// 取りうる値は2つだけ const yes: boolean = true; const no: boolean = false; |
宣言と型注釈
変数を boolean 型として明示するには、変数名のあとに : boolean と型注釈を付けます。一方で、最初から true / false で初期化する場合は、型推論(type inference)によって TypeScript が自動で boolean 型と判断するため、型注釈は省略しても構いません。
|
// 型注釈を明示 let isDone: boolean = false;
// 初期化からの型推論(isActive は boolean と推論される) let isActive = true;
isDone = true; // OK // isDone = "yes"; // エラー: 型 'string' を型 'boolean' に割り当てできません |
なお、let flag = true のように let で初期化した変数は boolean 型に推論されますが、const flag = true と const で宣言すると、より狭いリテラル型 true に推論される点も覚えておくと役立ちます。
真偽値を返す式
boolean 値はリテラルで直接書くほか、比較演算子や論理演算子の結果としても得られます。条件式の多くはこれらの演算から生まれます。
比較演算子
| 演算子 | 意味 | 例 | 結果 |
|---|---|---|---|
=== |
厳密に等しい(型変換なし) | 1 === 1 |
true |
!== |
厳密に等しくない | 1 !== 2 |
true |
< / > |
より小さい/より大きい | 3 < 5 |
true |
<= / >= |
以下/以上 | 5 >= 5 |
true |
論理演算子
&&(論理積)、||(論理和)、!(否定)を使います。なお JavaScript/TypeScript の && と || は、必ずしも boolean を返すわけではなくオペランドそのものを返す(短絡評価)点に注意が必要です。確実に boolean を得たい場合は ! を2回重ねた !! や Boolean(...) 関数を使います。
|
const a = 10; a > 5 && a < 20; // true(両方が真) a === 0 || a === 10; // true(どちらかが真) !(a > 5); // false(否定)
// 短絡評価: && / || はオペランドを返すことがある 0 || "既定値"; // "既定値"(boolean ではない) !!"text"; // true(確実に boolean 化) |
truthy / falsy(真値・偽値)
TypeScript の if 文や論理演算子の条件部分には、boolean 以外の値も書けます。このとき値は「真とみなされる(truthy)」か「偽とみなされる(falsy)」かに自動的に分類されて評価されます。これは TypeScript 独自の仕様ではなく、ベースとなる JavaScript の挙動を引き継いだものです。
falsy(偽とみなされる)な値は、次の8種類だけです。これら以外の値はすべて truthy になります(空配列 [] や空オブジェクト {}、文字列 "0" や "false" も truthy である点に注意)。
| falsyな値 | 説明 |
|---|---|
false |
boolean の偽そのもの |
0 / -0 |
数値のゼロ(正負) |
0n |
BigInt のゼロ |
"" |
空文字列('' / `` も同じ) |
null |
値が存在しないことを示す |
undefined |
未定義 |
NaN |
非数(Not a Number) |
|
const name = ""; if (name) { console.log("名前あり"); } else { console.log("名前なし"); // 空文字は falsy なのでこちらが実行される }
// 直感に反する例 if ([]) console.log("空配列は truthy"); // 実行される if ("false") console.log("文字列の false も truthy"); // 実行される |
boolean(プリミティブ)と Boolean(ラッパー)の違い
TypeScript には小文字の boolean と大文字の Boolean という、紛らわしい2つの名前があります。型注釈には必ず小文字の boolean を使ってください。
boolean(小文字): プリミティブ型。true/falseという値そのものを表す。通常はこちらを使う。Boolean(大文字): ラッパーオブジェクト型。new Boolean()が生成するオブジェクトの型であり、プリミティブの boolean 値を代入できない。Boolean(...)関数(newなし): 引数を truthy/falsy 判定して boolean プリミティブに変換する関数。これは便利で、使ってよい。
|
// 推奨: 小文字 boolean const ok: boolean = true;
// 非推奨: 大文字 Boolean 型はプリミティブを代入できない // const ng: Boolean = true; // 一見通るが、Boolean 型は避けるべき
// Boolean() 関数(new なし)は変換用途で有用 const flag = Boolean("text"); // true(プリミティブ) |
型ガードでの活用
boolean を返す関数は、TypeScript の型ガード(type guard)と組み合わせると強力です。戻り値の型注釈を 引数 is 型 の形(型述語、type predicate)で書くと、その関数が true を返した分岐内で、コンパイラが値の型を自動的に絞り込んでくれます。
|
// 戻り値型を「value is string」とすると型ガードになる function isString(value: unknown): value is string { return typeof value === "string"; }
function print(x: unknown) { if (isString(x)) { // このブロック内では x は string に絞り込まれる console.log(x.toUpperCase()); } } |
落とし穴と注意点
| 注意したい落とし穴 |
|---|
|
boolean に関するFAQ
Q1. 型注釈は boolean と Boolean のどちらを書けばよいですか?
必ず小文字の boolean です。大文字 Boolean はラッパーオブジェクトの型で、const x: Boolean = true のように一見書けてしまいますが、メソッド呼び出しの想定が異なり混乱の元になります。実用上の利点は一切ないため、型としては常に小文字を使ってください。
Q2. if (value) と if (value === true) は同じですか?
異なります。if (value) は value が truthy かどうかを判定するため、1 や "text" でも真になります。if (value === true) は value がプリミティブの true と厳密に一致する場合だけ真です。value が boolean 型だと型で保証されているなら if (value) で十分ですが、truthy 全般ではなく true のみを判定したいときは === true を使い分けます。
Q3. 文字列や数値を boolean に変換するにはどうすればよいですか?
Boolean(値) 関数か、!!値 イディオムを使います。どちらも対象が truthy なら true、falsy なら false を返します。例えば Boolean("") は false、!!"text" は true です。なお文字列 "false" を変換すると(空文字ではないため)true になる点に注意してください。文字列 "true"/"false" を真偽値に解釈したい場合は str === "true" のように明示的に比較します。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- String(文字列)
- Number (数値: 整数/浮動小数点数)
- Boolean (真偽値: true/false)
- Any (全ての型を許容)
- Array(配列)
- Tuple (値のペア)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- UE5のEvent Tickノードの使い方|毎フレーム処理とDelta Seconds 2026-06-13 13:26:37
- UE5のレベルブループリントでキャラクターをスポーンさせる方法 2026-06-13 13:26:37
- UE5でAI Move ToがBlockedで失敗する原因と対処方法|NavMesh確認 2026-06-13 13:26:36
- UE5のビューポートの使い方|視点操作・ビューモード・投影の基本 2026-06-13 13:26:36
- Reactのよくあるエラーと対処まとめ|環境構築・npm関連 2026-06-13 13:26:36
- UE5のWorld Compositionとは|サブレベルによる大規模ワールドと非推奨化 2026-06-13 13:26:35
- C++のコンパイルと実行方法|g++の使い方とオプション 2026-06-13 13:26:35
- .protoのgo_packageオプションとは|Goコード生成時のパッケージ指定 2026-06-13 13:26:34
- C++の開発環境構築|コンパイラとIDEの選び方・Hello World 2026-06-13 13:26:34
- gRPCクイックスタート|.proto定義からサーバ・クライアント実装まで 2026-06-13 13:26:33
- C++の関数まとめ|標準入出力(printf・cout・cin)と関数の基本 2026-06-13 13:26:33
- C#・Visual Studioのよくあるエラーと対処まとめ 2026-06-13 13:26:33
- UE5のアウトライナーとは|アクターの一覧・整理・親子付け 2026-06-13 13:26:32
- UE5でSet Input Mode UI Onlyを解除する方法|Game Onlyに戻す 2026-06-13 13:26:32
- UE5エディタの自動保存の頻度を変更する方法|Auto Save設定 2026-06-13 13:26:31
コメントを削除してもよろしいでしょうか?