🤖
【TypeScript基礎①】型まとめ
TypeScriptの型について
TypeScriptの型にはプリミティブ型
とオブジェクト型
がある
プリミティブ型
TypeScriptにおける基本的な型
型 | 説明 |
---|---|
boolean | trueまたはfalseの真偽値 |
number | 0や0.1のような数値 |
string | "Hello World"のような文字列 |
undefined | 値が未定義であることを表す値 |
null | 値がないことを表す値 |
symbol | 一意で不変の値 |
bigint | number型では扱えない大きな整数型 |
undefinedとnullの違い
表示したい内容
オブジェクト型
TypeScriptにおける、プリミティブ型
以外のすべての型のこと
型 | 説明 |
---|---|
リテラル型 | プリミティブ型の特定の値だけを代入可能にする |
intersection型 | 複数の型を組み合わせてすべての型の特性をもつ |
union型 | 複数の型のうち、どれか一つの型を取りえる |
array型 | 配列 |
tuple型 | 固定長の配列で各要素の型が指定されている |
enum型 | 関連する定数値を一つのグループとしてまとめる |
ユーティリティ型 | ある型から作成した新しい型 |
unknown型 | 型が不明な時に使う |
never型 | 値を持たない |
any型 | どんな型でも代入を許す |
リテラル型
プリミティブ型の特定の値だけを代入可能にする型のこと
// 文字列リテラル型の例
type Color = "red" | "green" | "blue";
// 数値リテラル型の例
type DiceValue = 1 | 2 | 3 | 4 | 5 | 6;
intersection型
複数の型を組み合わせてすべての型の特性をもつ型
type Employee = Person & Payable;
union型
複数の型のうち、どれか一つの型を取りえる型
type numberOrUndefined: number | undefined;
array型
配列を表す型
下記の例のように書き方は二通りある
let numbers1: number[] = [1, 2, 3];
let numbers2: Array<number> = [1, 2, 3];
tuple型
固定長の配列で各要素の型が指定されている型
// 1番目には[string型],2番目には[number型]しか許容しない
let profile: [string, number] = ["Tanaka", 20];
enum型
列挙型ともいい、関連する定数値を一つのグループとしてまとめる型
数値ベースと文字列ベースの定義がある
数値ベースのenum
例えば下記のように記述するとAppleには1が、Orangeには2が割り当てられる
enum Fruits {
Apple=1,
Orange,
};
文字列ベースのenum
例えば下記のように記述するとAppleにはりんごが、Orangeにはオレンジが割り当てられる
enum Fruits {
Apple="りんご",
Orange="オレンジ",
};
void型
値を返さない関数の型
function hogehoge(): void {
console.log("humhum");
}
ユーティリティ型
ある型から新しく作成された別の型
型 | 説明 |
---|---|
Required<T> | 全プロパティを必須にする |
Readonly<T> | 全プロパティを読み取り専用にする |
Partial<T> | 全プロパティをオプショナルにする |
Records<Keys,Type> | キー・バリューからオブジェクト型をつくる |
Pick<T,Keys> | 任意のプロパティだけを持つオブジェクト型をつくる |
Omit<T,Keys> | 任意のプロパティを除いたオブジェクト型をつくる |
Exclude<T,U> | 任意の方を除外する |
Extract<T,U> | 任意の方を抽出する |
NoInfer<T> | 型推論を防ぐ |
NonNullable<T> | nullとundefiendを除外する |
ReturnType<T> | 関数の戻り値の型を取得する |
Awaited<T> | Promiseの解決値の型を取得する |
unknown型
型がなにかわからないときに使う型で、どんな値も代入できる
any
型よりも安全性が高い
let value: unknown;
value = 1; // OK
value = "string"; // OK
value = { name: "オブジェクト" }; // OK
never型
「値を持たない」を意味する特別な型
主にエラーやループしている関数に対して使用される
any型
どんな型でも代入を許す型
let value: any;
value = 1; // OK
value = "string"; // OK
value = { name: "オブジェクト" }; // OK
Discussion