TypeScript 型付き配列入門

2024-10-07

TypeScript 型付き配列の使用について (Japanese)

型付き配列とは?

TypeScriptでは、配列の要素の型を指定することができます。これにより、コードの型安全性を向上させ、バグを早期に発見することができます。

型付き配列の宣言

型付き配列を宣言するには、配列の型と要素の型を指定します。

let numbers: number[] = [1, 2, 3];
let strings: string[] = ["apple", "banana", "orange"];

型付き配列に対しては、通常の配列と同じ操作を行うことができます。

numbers.push(4);
console.log(numbers[0]);

型の推論

TypeScriptでは、型を明示的に指定しなくても、コンパイラが型を推論することができます。

let fruits = ["apple", "banana", "orange"]; // 型は string[] に推論される

ジェネリック型

型付き配列の要素の型を汎用的に指定するために、ジェネリック型を使用することができます。

function printArray<T>(array: T[]): void {
  for (let item of array) {
    console.log(item);
  }
}

printArray([1, 2, 3]);
printArray(["apple", "banana", "orange"]);

読みやすさと型安全性の向上

型付き配列を使用することで、コードの読みやすさと型安全性を向上させることができます。これにより、バグを減らし、コードの品質を改善することができます。

具体的な例

interface Person {
  name: string;
  age: number;
}

let people: Person[] = [
  { name: "Alice", age: 30 },
  { name: "Bob", age: 25 },
];

function getAverageAge(people: Person[]): number {
  let totalAge = people.reduce((sum, person) => sum + person.age, 0);
  return totalAge / people.length;
}

console.log(getAverageAge(people));



基本的な型付き配列

// 数値の配列
let numbers: number[] = [1, 2, 3, 4, 5];

// 文字列の配列
let fruits: string[] = ["apple", "banana", "orange"];

// オブジェクトの配列
interface Person {
  name: string;
  age: number;
}

let people: Person[] = [
  { name: "Alice", age: 30 },
  { name: "Bob", age: 25 },
];
let mixedArray = [1, "hello", true]; // 型は any[] に推論される
function printArray<T>(array: T[]): void {
  for (let item of array) {
    console.log(item);
  }
}

printArray([1, 2, 3]);
printArray(["apple", "banana", "orange"]);

配列メソッド

numbers.push(6); // 配列の末尾に要素を追加
numbers.pop(); // 配列の末尾から要素を削除
numbers.shift(); // 配列の先頭から要素を削除
numbers.unshift(0); // 配列の先頭に要素を追加

配列の操作

let filteredNumbers = numbers.filter(num => num > 3); // 3より大きい数値を抽出
let mappedStrings = fruits.map(fruit => fruit.toUpperCase()); // 文字列を大文字に変換
let reducedSum = numbers.reduce((sum, num) => sum + num, 0); // 数値の合計を計算

型ガード

function printPerson(person: any): void {
  if (person.name && person.age) {
    console.log(`${person.name} is ${person.age} years old.`);
  } else {
    console.log("Invalid person object.");
  }
}
  • 機能性
    TypeScriptの型システムを活用して、より強力なコードを書くことができます。
  • 読みやすさ
    コードの意図が明確になり、理解しやすくなります。
  • 型安全
    コンパイル時に型エラーを検出できるため、バグを減らすことができます。



インターフェースの使用

interface Person {
  name: string;
  age: number;
}

let people: Person[] = [
  { name: "Alice", age: 30 },
  { name: "Bob", age: 25 },
];

型エイリアス

type Person = {
  name: string;
  age: number;
};

let people: Person[] = [
  { name: "Alice", age: 30 },
  { name: "Bob", age: 25 },
];

タプル

let personTuple: [string, number] = ["Alice", 30];

Readonly配列

let readonlyNumbers: readonly number[] = [1, 2, 3];
// readonlyNumbers.push(4); // エラー: Readonly配列は変更できません

型ガード

function printPerson(person: any): void {
  if (isPerson(person)) {
    console.log(`${person.name} is ${person.age} years old.`);
  } else {
    console.log("Invalid person object.");
  }
}

function isPerson(obj: any): obj is Person {
  return obj && typeof obj === "object" && "name" in obj && "age" in obj;
}

型推論

let fruits = ["apple", "banana", "orange"]; // 型は string[] に推論される
function printArray<T>(array: T[]): void {
  for (let item of array) {
    console.log(item);
  }
}

配列メソッド

numbers.push(6); // 配列の末尾に要素を追加
numbers.pop(); // 配列の末尾から要素を削除
numbers.shift(); // 配列の先頭から要素を削除
numbers.unshift(0); // 配列の先頭に要素を追加

配列の操作

let filteredNumbers = numbers.filter(num => num > 3); // 3より大きい数値を抽出
let mappedStrings = fruits.map(fruit => fruit.toUpperCase()); // 文字列を大文字に変換
let reducedSum = numbers.reduce((sum, num) => sum + num, 0); // 数値の合計を計算

arrays typescript



空オブジェクトの作成方法

JavaScriptでは、空のオブジェクトを作成する方法は主に2つあります: {} と new Object() です。直接オブジェクトを記述する構文を使用します。最もシンプルかつ一般的な方法です。よりオブジェクト指向的なアプローチですが、リテラル表記と比べて冗長です。...


JavaScript配列の空要素削除

JavaScriptにおいて、配列から空の要素を削除する方法について説明します。空の要素とは、undefined, null, "", 0, false などの偽値(falsy value)を指します。最も一般的な方法は、filter メソッドを使用することです。このメソッドは、配列の各要素に対してコールバック関数を呼び出し、その結果が真(truthy)である要素のみを含む新しい配列を返します。...


JavaScript配列への追加方法

JavaScriptでは、配列の最後に要素を追加する方法は主に次の通りです。スプレッド演算子 新しい配列を作成し、元の配列と追加する要素を展開して結合します。concat()メソッド 新しい配列を作成し、元の配列と追加する要素を結合します。...


for...inループの落とし穴

日本語訳JavaScriptにおいて、配列の反復処理にfor. ..inループを使用することは一般的に推奨されません。なぜでしょうか?for. ..inループは、これらの数値インデックスだけでなく、配列に定義された他のプロパティも反復します。これは、意図しない結果を引き起こす可能性があります。...


JavaScript配列要素削除: delete vs splice

JavaScriptでは、配列要素を削除する際に delete と splice という2つの方法があります。これらは異なる動作をするため、適切な方法を選択することが重要です。配列の構造を保ちたい場合や、稀に要素を削除したい場合に使用できます。...



SQL SQL SQL SQL Amazon で見る



JavaScriptでHtml Selectのオプションを値でソートし、現在選択されている項目を維持する

ソリューションこの問題を解決するには、以下の手順を実行する必要があります。オプションの値を取得するソートされた値に基づいてオプションを再構築する現在選択されている項目を再選択するまず、select 要素からすべてのオプションの値を取得する必要があります。これは、次の方法で実行できます。


JavaScript配列検索方法解説

JavaScriptでは、配列内のアイテムを検索するためのさまざまな方法があります。以下はその中でも一般的な方法です。例説明 配列内の指定された要素のインデックスを返します。見つからない場合は-1を返します。説明 配列内に指定された要素が含まれているかどうかをブール値で返します。


HTMLCollectionを配列に変換

HTMLCollectionは、HTML要素のリストを格納するオブジェクトです。JavaScriptでHTMLCollectionを配列に変換する最も効率的な方法は、Array. from()メソッドを使用することです。このコードでは、document


JavaScript配列ソート解説

JavaScriptのArray. sort()メソッドは、配列内の要素をソートするための基本的な関数です。デフォルトでは、要素を文字列として比較し、辞書順にソートします。Array. sort()メソッドに比較関数を提供することで、独自のソートロジックを実装できます。比較関数は、2つの要素を受け取り、それらの相対的な順序を指定する数値を返します。


JavaScript配列の値検索方法

JavaScriptでは、配列に特定の値が含まれているかどうかを調べるために、主に次の2つの方法が使用されます。indexOf()メソッド 配列内で指定した値が見つかった場合にそのインデックスを、見つからなかった場合に-1を返します。includes()メソッド 配列に指定した値が含まれている場合にtrueを、含まれていない場合にfalseを返します。