[解決済み】TypescriptのES6マップ
2022-04-02 16:08:24
質問
typescriptで、ES6(ECMAscript 2016)のMapであるプロパティを持つクラスを以下のように作成しています。
class Item {
configs: ????;
constructor () {
this.configs = new Map();
}
}
ES6 Map型をtypescriptで宣言するには?
どのように解決するのですか?
EDIT(2019年6月5日)。
TypeScriptがサポートするのは、以下の通りです。
Map
というものをサポートしています。
Record
.
type MyMapLikeType = Record<string, IPerson>;
const peopleA: MyMapLikeType = {
"a": { name: "joe" },
"b": { name: "bart" },
};
残念ながら、最初の一般的なパラメータ (キータイプ) は、まだ完全に尊重されていません。
string
のような型では
peopleA[0]
(a
number
)はまだ有効です。
EDIT(2016年4月25日)。 下記の回答は古いので、ベストアンサーとは考えない方がいいです。TypeScriptは現在、Maps "natively"をサポートしており、出力がES6の場合にES6 Mapsを使用できるようにしているだけです。ES5については、ポリフィルは提供されていません。
詳しくは mohamed hegazyの回答は以下の通りです。 は、より現代的な回答、あるいは このredditのコメント はショートバージョンです。
1.5.0 ベータ版では、TypeScript はまだサポートしていません。 地図 . の一部にはまだなっていません。 ロードマップ ということです。
現在のベストソリューションは、キーと値が型付けされたオブジェクト(ハッシュマップと呼ばれることもある)です。の型を持つオブジェクトの場合、キーは
string
で、値は
number
:
var arr : { [key:string]:number; } = {};
ただし、いくつか注意点があります。
-
キーは
string
またはnumber
- 数値と文字列は互換性があるため、キータイプとして何を使っても問題ありません(値のみが強制されます)。
上記の例で
// OK:
arr["name"] = 1; // String key is fine
arr[0] = 0; // Number key is fine too
// Not OK:
arr[{ a: "a" }] = 2; // Invalid key
arr[3] = "name"; // Invalid value
関連
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでオブジェクトに動的にプロパティを割り当てるには?
-
[解決済み] TypeScriptで配列の項目を削除するには?
-
[解決済み] クラス定数を実装するには?
-
[解決済み] JSONオブジェクトを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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?