[解決済み] TypeScriptのハッシュマップ/辞書インターフェイス
2022-06-07 02:07:25
質問
私はTypeScriptを使うのが初めてで、hashmap/dictionaryインターフェイスを実装しようとしています。今のところ、私は
export interface IHash {
[details: string] : string;
}
この構文の意味を正確に理解するのに苦労しています。もし私が
var x : IHash = {};
を使用する場合、どのようにデータを追加/アクセスするのでしょうか?
どのように解決するのですか?
通常のjsオブジェクトと同様です。
let myhash: IHash = {};
myhash["somestring"] = "value"; //set
let value = myhash["somestring"]; //get
でやっていることは2つあります。
[indexer: string] : string
- TypeScriptに、オブジェクトが任意の文字列ベースのキーを持つことができることを伝える。
- すべてのキー項目に対して、値が文字列型でなければならないことを伝える。
明示的に型付けされたフィールドを持つ一般的な辞書を作成するためには
[key: string]: any;
例
age
は必ず
number
でなければならず、一方
name
は文字列でなければなりません - 両方とも必須です。暗黙のフィールドはどのような型の値でも構いません。
代替案として
Map
クラスがあります。
let map = new Map<object, string>();
let key = new Object();
map.set(key, "value");
map.get(key); // return "value"
これにより、任意のオブジェクト インスタンス (数字/文字列だけでなく)をキーとして持つことができます。
比較的新しいものなので、古いシステムをターゲットにしている場合はポリフィルが必要になるかもしれませんが。
関連
-
[解決済み] タイプスクリプトのコンパイルで「tsc コマンドが見つかりません。
-
[解決済み] エラー TS2322: タイプ 'Object[]' はタイプ '[Object]' に割り当てられません。
-
[解決済み] TypeScriptの円形型参照
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] Typescript によるインターフェース型チェック
-
[解決済み】TypeScriptのインターフェースと型について
-
[解決済み] コンストラクトシグネチャを持つインターフェースはどのように機能するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] タイプスクリプトのエラーです。TS7053 要素が暗黙のうちに 'any' 型を持っています。
-
[解決済み] Jest で typescript を使用して identity-obj-proxy を使用すると未定義が返される
-
[解決済み] 重複した識別子」という紛らわしいTypescriptエラーメッセージが発生する。
-
ts 学習日記1 AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります
-
[解決済み] 'タイプ 'never'にプロパティが存在しません。
-
[解決済み] Typescriptでオブジェクトのプロパティを結合する方法は?
-
[解決済み] TypeScriptでオブジェクトを初期化する方法
-
[解決済み] TypeScriptのオブジェクトリテラルでの型定義
-
[解決済み】「エラー TS2533: オブジェクトは 'null' または 'undefined' の可能性があります」を抑制する方法とは?
-
[解決済み】tsconfig.jsonファイルを生成するにはどうしたらいいですか?