typescript使用变量键从JSON对象Map中获取值

djmepvbi  于 2022-12-30  发布在  TypeScript
关注(0)|答案(1)|浏览(341)

我在尝试从一个Map中获取一个a值时遇到了麻烦,在这个Map中我们变量化了键。
让我展示一下我想要达到的目标。假设我有一个包含以下值的变量Map:

let map = {
 Argentina : "222",
 Brazil : "333",
 Mexico : "444",
};

我有一个用户输入变量country

let country = "Argentina";

我想使用如下两个来使用用户输入的键值从Map中获取值。

console.log(map[$country]);
mbskvtky

mbskvtky1#

做你想做的事情的几种方法(可能还有更多):

let map = {
 Argentina : "222",
 Brazil : "333",
 Mexico : "444",
};

let country = "Argentina";
let country2: keyof typeof map = "Argentina";
// let country3: keyof typeof map = "Argentina2"; // Type '"Argentina2"' is not assignable to type '"Argentina" | "Brazil" | "Mexico"'.

console.log(map[country as keyof typeof map]);
console.log((map as any)[country]);
console.log(map[country2]);

Playground链接
另一种方法是显式地为map对象指定一个类型(不太严格

// let map: {[key: string]: string} = {
let map: {[key: string]: any} = {
 Argentina : "222",
 Brazil : "333",
 Mexico : "444",
};

let country = "Argentina";
console.log(map[country]);

Playgrond链接2

相关问题