TypeScriptのデータ型:完全リファレンス

TypeScriptのデータ型

TypeScriptのデータ型:全ての型を検索できる一覧表 | We.Inc

string、number、boolean、bigint、symbol、null、undefined、any、unknown、never、void、object、配列、タプル、列挙型、リテラル型、ユニオン型を、それぞれ例付きで紹介します。

TypeScriptの基本的なデータ型は、JavaScriptの7つのプリミティブ、つまりstring、number、bigint、boolean、symbol、null、undefinedで、小文字で書きます。その上に、特殊な型(any、unknown、never、void、object)、配列、タプル、列挙型などの構造、そしてリテラル型、ユニオン型、交差型といった型を組み合わせる方法が加わります。

4つのグループ

リファレンスは名前で検索したり、グループで絞り込んだりできます。各行には.tsファイルにそのまま貼り付けられる1行の例があり、注記の列では、voidとundefinedの違いや、unknownがanyより安全な理由など、つまずきやすい挙動を示しています。

よくある質問

TypeScriptにはプリミティブ型がいくつありますか?

JavaScriptと同じ7つで、string、number、bigint、boolean、symbol、null、undefinedです。numberは整数と小数の両方を表し、整数専用や浮動小数点専用の別の型はありません。

anyとunknownの違いは何ですか?

どちらもあらゆる値を受け入れます。anyはその値に対して何でもできるので、ミスが気づかれないまま通ってしまいます。unknownはtypeofなどのチェックで絞り込むまで何もできないため、信頼できないデータには安全な選択肢です。

never型は何に使いますか?

neverは、発生し得ない値を表します。常に例外を投げる関数の戻り値の型や、ユニオン型のすべてのメンバーを処理した後に残るものです。この2つ目の使い方が、網羅性チェックを支えています。

voidとundefinedは同じですか?

いいえ。voidは、戻り値を無視すべき関数の戻り値の型です。voidを返すと型付けされた関数には、何かを返すコールバックを渡すこともできます。一方、undefinedは値が本当にundefinedであることを意味します。

object、Object、{} の違いは何ですか?

objectは、オブジェクト、配列、関数など、プリミティブ以外のあらゆる値を意味します。{} は、プリミティブを含め、nullとundefined以外のあらゆる値を意味します。グローバルなObject型が役立つことはほとんどないので、objectか具体的なオブジェクト型を使いましょう。

プリミティブ:typeofが返す値

特殊な型は端を表す

型を組み合わせる

unknownから使える型へ

信頼できない入力を段階的に絞り込む

チェックのたびに可能性が減っていきます。最後の分岐の中では、コンパイラーはその値が文字列だとわかっています。

網羅性チェックとしてのnever

ユニオン型に新しいステータスが加わると、対応する分岐が追加されるまで、neverへの代入がコンパイルエラーになります。

任意の長さのテキスト。テンプレートリテラルも文字列です。

整数も小数も同じ型で、NaNとInfinityも含みます。

安全な整数の範囲を超える整数。接尾辞nにはES2020のターゲットが必要です。

trueかfalseのみ。

Symbol() を呼ぶたびに一意の値が作られます。

strictNullChecksが有効な場合、nullを許可するには型に明記する必要があります。

宣言されたが代入されていない変数や、存在しない省略可能プロパティの値です。

その値のチェックを無効にします。noImplicitAnyは、気づかないうちに入り込んだ箇所を報告します。

どんな値も保持できますが、絞り込むまで何も許可しません。

この型を持つ値は存在しません。常に例外を投げる関数や、何も残っていないユニオン型です。

無視すべき戻り値。undefinedとは異なります。

プリミティブ以外のすべて:オブジェクト、配列、関数。

配列

string[] と Array<string> は同じ意味です。

読み取り専用配列

ReadonlyArray<number> と同じです。pushなど、変更を加えるメソッドが取り除かれます。

タプル

長さが固定で、位置ごとに型があります。省略可能な要素は末尾に置きます:[number, number?]。

ほとんどのTypeScriptの構文と違い、実行時に実際のオブジェクトを生成します。

オブジェクト型

プロパティをインラインで記述します。再利用するにはtypeかインターフェースで名前を付けます。

関数型

引数と戻り値の型。緩いFunction型よりこちらを使いましょう。

リテラル型

プリミティブ全体ではなく、正確な値を表します。

ユニオン型

複数の型のうちの1つ。メンバーを使う前に、typeof、in、共通のフィールドで絞り込みます。

交差型

すべての型を同時に満たします。主にオブジェクト型の合成に使います。

プリミティブ

特殊な型

構造

組み合わせ

検索できる型リファレンス

型を検索

unknown、タプル、null...

グループで絞り込む

すべて

{v}件中{n}件の型を表示中

検索に一致する型はありません。

TypeScriptの型と例

型

グループ

例

注記

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る