🦁

TypeScriptの基本的な型と機能

2024/05/25に公開

プリミティブ型

TypeScriptにはいくつかの基本的なデータ型があります。

  • String: 文字列を表します。
  • Number: 数値を表します。
  • Boolean: 真偽値を表します。
let name: string = "John";
let age: number = 25;
let isStudent: boolean = true;

型シグネチャ

型シグネチャは、関数がどのような型の引数を受け取り、どのような型の値を返すかを定義します。

function greet(name: string): string {
    return `Hello, ${name}!`;
}

let greeting: string = greet("Alice");

型エイリアス

typeを使って、型に名前をつけて宣言できます。同じ型を何度も定義する必要がなくなり、再利用が可能です。

type Point = {
    x: number;
    y: number;
};

let point1: Point = { x: 10, y: 20 };
let point2: Point = { x: 15, y: 25 };

オプションパラメータ

関数の引数にオプションパラメータを指定できます。オプショナルな引数には?をつけます。

function buildName(firstName: string, lastName?: string): string {
    return lastName ? `${firstName} ${lastName}` : firstName;
}

let name1 = buildName("Bob");
let name2 = buildName("Bob", "Smith");

デフォルトパラメータ

デフォルトパラメータを使うことで、引数が省略された場合にデフォルトの値を設定できます。

function greet(name: string = "Guest"): string {
    return `Hello, ${name}!`;
}

let greeting1 = greet();
let greeting2 = greet("Alice");

関数で使われる特別な型

Void

voidは、return文を持たない関数の戻り値として使われます。

function logMessage(message: string): void {
    console.log(message);
}

logMessage("This is a log message");

Never

neverは、決して戻ることのない関数の戻り値として使われます。

function error(message: string): never {
    throw new Error(message);
}

function infiniteLoop(): never {
    while (true) {}
}

Any

any型は、どんな型にもなれる型です。安全性を損なうため、できるだけ使わない方が良いです。

let anything: any = 42;
anything = "hello";
anything = true;

Unknown

unknown型は、代入する値によって型が変化する型です。

let unknownValue: unknown;
unknownValue = "hello";
unknownValue = 42;

if (typeof unknownValue === "string") {
    console.log(unknownValue.toUpperCase());
}

インデックスシグネチャ

インデックスシグネチャを使うことで、オブジェクトが複数のプロパティを持つ可能性を示すことができます。

interface StringArray {
    [index: number]: string;
}

let myArray: StringArray = ["Bob", "Alice", "Charlie"];

合併型(Union)と交差型(Intersection)

合併型(Union)

合併型は、型Aか型Bのどちらかを持つ型です。

let value: string | number;
value = "hello";
value = 42;

交差型(Intersection)

交差型は、型Aと型Bの両方を持つ型です。交差型は「AとBに共通する型」ではありません。

interface Person {
    name: string;
}

interface Employee {
    employeeId: number;
}

type EmployeePerson = Person & Employee;

let employee: EmployeePerson = { name: "John", employeeId: 12345 };

存在しないことを表す型

Null

nullは、値が欠如していることを表します。

let nullableString: string | null = null;
nullableString = "hello";

Undefined

undefinedは、初期化されておらず、値が割り当てられていないことを表します。

let undefinedValue: string | undefined;
undefinedValue = "hello";

型アノテーション

明示的に型を指定する方法です。型アノテーションを使うことで、変数や関数の型を明確にします。

let myName: string = 'Tora';
let myAge: number = 30;
let isDeveloper: boolean = true;

TypeScriptでは型を使うことでコードの安全性や可読性を向上させることができます。これらの基本的な型や機能を理解して、より効果的にTypeScriptを使いこなしましょう。

Discussion