1. ホーム
  2. arrays

[解決済み] TypeScriptのオブジェクトをC#のようにDictionary型にする

2022-03-24 15:08:50

質問

例えば、'person'オブジェクトは、電子メールアドレスをキーにした個人情報を保持します。

var people = {<email> : <'some personal data'>};

adding   > "people[<email>] = <data>;" 
getting  > "var data = people[<email>];" 
deleting > "delete people[<email>];"

これをTypescriptで記述することは可能でしょうか?それともArrayを使用しなければならないのでしょうか?

どのように解決するのですか?

新しいバージョンのtypescriptでは、使用することができます。

type Customers = Record<string, Customer>

古いバージョンでは、使用できます。

var map: { [email: string]: Customer; } = { };
map['[email protected]'] = new Customer(); // OK
map[14] = new Customer(); // Not OK, 14 is not a string
map['[email protected]'] = 'x'; // Not OK, 'x' is not a customer

毎回タイプアノテーションを全部打ち出すのが面倒なら、インターフェイスを作ることもできます。

interface StringToCustomerMap {
    [email: string]: Customer;
}

var map: StringToCustomerMap = { };
// Equivalent to first line of above