kamus - Tidak bisa menggunakan angka sebagai kunci di Map Typescript?
Di dalam kelas:
private stuff: Map<number, string> = new Map();
...
this.stuff[aNumber] = "hello";
Memberikan kesalahan ini:
Elemen secara implisit memiliki tipe
anykarena ekspresi dengan tipenumbertidak dapat digunakan untuk mengindeks tipeMap<number, string>.Tidak ada tanda tangan indeks dengan parameter bertipe
numberyang ditemukan pada tipeMap<number, string>
Ini tidak masuk akal bagi saya. Mengapa Map<number, string> tidak mendeklarasikan tanda indeks dengan parameter bertipe number?
Jawaban #1
Ini karena Map tidak menggunakan pengindeks - itu menggunakan metode get/set.
let foo: Map<number, string> = new Map();
foo.set(2, "something");
let some = foo.get(2);
Yang bisa Anda lakukan adalah menggunakan objek peta kustom number: string
let bar: { [key: number]: string } = {};
bar[1] = "some";
bar["sl"] = "some" // error
Silakan lihat taman bermain.
