TypeScriptで辞書を宣言・初期化する4つの方法
辞書とは?
TypeScriptで辞書を宣言するには、以下の2つの方法があります。
方法1:{} を使用する
const myDictionary: { [key: string]: any } = {};
この方法では、空のオブジェクトリテラル {}
を使用して辞書を宣言します。キーと値の型は、[key: string]: any
のように指定します。string
はキーの型、any
は値の型を表します。any
は TypeScript の特殊な型で、あらゆる型の値を受け入れることができます。
方法2:Dictionary 型を使用する
import { Dictionary } from "typescript-collections";
const myDictionary: Dictionary<string, any> = new Dictionary();
この方法では、typescript-collections
ライブラリから Dictionary
型をインポートして使用します。Dictionary
型は、キーと値の型をジェネリック型引数として指定します。
辞書の初期化には、以下の2つの方法があります。
方法1:キーと値を直接指定する
const myDictionary: { [key: string]: any } = {
"name": "John Doe",
"age": 30,
};
この方法では、キーと値を直接オブジェクトリテラル内に記述します。
方法2:set() メソッドを使用する
const myDictionary: Dictionary<string, any> = new Dictionary();
myDictionary.set("name", "John Doe");
myDictionary.set("age", 30);
この方法では、set()
メソッドを使用して、キーと値を辞書に追加します。
辞書の使い道
辞書は、さまざまな用途で使用できます。以下は、その例です。
- ユーザー情報などのデータを保存する
- 設定値を管理する
- データベースとのマッピングを行う
- キャッシュとして使用
まとめ
TypeScriptで辞書を宣言・初期化するには、いくつかの方法があります。どの方法を使用するかは、状況によって異なります。辞書は、さまざまな用途で使用できる便利なデータ構造です。
TypeScriptで辞書を扱うサンプルコード
辞書の宣言と初期化
// 方法1:{} を使用する
const myDictionary1: { [key: string]: any } = {
"name": "John Doe",
"age": 30,
};
// 方法2:Dictionary 型を使用する
import { Dictionary } from "typescript-collections";
const myDictionary2: Dictionary<string, any> = new Dictionary();
myDictionary2.set("name", "John Doe");
myDictionary2.set("age", 30);
辞書の要素へのアクセス
// キーを使って値を取得する
const name1 = myDictionary1["name"]; // "John Doe"
const name2 = myDictionary2.get("name"); // "John Doe"
// すべてのキーをループ処理する
for (const key of myDictionary1) {
console.log(key); // "name" "age"
}
// すべての値をループ処理する
for (const value of myDictionary2.values()) {
console.log(value); // "John Doe" 30
}
辞書の要素の追加・削除
// 新しい要素を追加する
myDictionary1["address"] = "123 Main Street";
myDictionary2.set("city", "New York");
// 要素を削除する
delete myDictionary1["age"];
myDictionary2.remove("city");
辞書のその他の操作
// 辞書のサイズを取得する
const size1 = Object.keys(myDictionary1).length; // 3
const size2 = myDictionary2.size; // 2
// 辞書が空かどうかを確認する
const isEmpty1 = Object.keys(myDictionary1).length === 0; // false
const isEmpty2 = myDictionary2.isEmpty(); // false
// 辞書をクリアする
myDictionary1 = {};
myDictionary2.clear();
まとめ
辞書を宣言・初期化する他の方法
interface を使用する
interface Person {
name: string;
age: number;
}
const myDictionary: Dictionary<string, Person> = new Dictionary();
myDictionary.set("John Doe", { name: "John Doe", age: 30 });
この方法では、interface
を使用して、辞書のキーと値の型を定義します。Dictionary
型のジェネリック型引数に、interface
の名前を指定します。
Map 型を使用する
const myDictionary: Map<string, any> = new Map();
myDictionary.set("name", "John Doe");
myDictionary.set("age", 30);
この方法では、Map
型を使用して辞書を宣言します。Map
型は、JavaScript の標準ライブラリで提供されているデータ構造です。
Record 型を使用する
type MyDictionary = Record<string, any>;
const myDictionary: MyDictionary = {
name: "John Doe",
age: 30,
};
この方法では、Record
型を使用して、辞書の型を定義します。Record
型は、TypeScript 4.1 以降で利用できる新しい型です。
まとめ
上記以外にも、さまざまな方法で辞書を宣言・初期化することができます。どの方法を使用するかは、状況によって異なります。
dictionary initialization typescript