[解決済み] TypeScriptのハッシュマップ/辞書インターフェイス
2022-03-05 13:15:43
質問
私はTypeScriptを使うのが初めてで、ハッシュマップ/辞書のインターフェイスを実装しようとしています。今のところ、私は
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に、オブジェクトが文字列ベースの任意のキーを持つことができることを伝える。
- すべてのキー項目に対して、値は文字列型でなければならない (MUST)。
明示的に型付けされたフィールドを持つ一般的なディクショナリーを作るには
[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"
これにより、任意のオブジェクト インスタンス (数字や文字列だけでなく)をキーとします。
ただし、比較的新しいものなので、古いシステムをターゲットにしている場合はポリフィルが必要かもしれません。
関連
-
[解決済み] TypeScriptのハッシュマップ/辞書インターフェイス
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] TypeScriptで文字列をenumに変換するには?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ブロックスコープ付き変数の再宣言ができない(typescript)
-
[解決済み] TypeScriptの円形型参照
-
[解決済み] TypeScriptでfetchを使う方法
-
[解決済み] なぜTypescriptではinferキーワードが必要なのでしょうか?
-
[解決済み] オブジェクトの型は「不明」です typescript generics
-
[解決済み] 'タイプ 'never'にプロパティが存在しません。
-
[解決済み] タイプスクリプト TS7006 です。パラメータ 'xxx' は暗黙のうちに 'any' 型を持ちます。
-
[解決済み] TypeScriptでオブジェクトを初期化する方法
-
[解決済み] Typescript は ?演算子をサポートしていますか?(そして、それは何と呼ばれているのでしょうか?)
-
[解決済み】ブロックに`@ts-ignore`を使用するには?