Aru*_*mar 5 c# dictionary typescript
我在c#中有字典对象.但我需要迁移到打字稿.我是打字稿的新手.我真的不知道,如何在打字稿中使用字典.
C#:
LengthsByCountry = new Dictionary<string, int>
{
{"AD", 24}, {"AL", 28}, {"AT", 20}, {"BA", 20},
{"BE", 16}, {"BG", 22}, {"CH", 21}, {"CY", 28},
{"CZ", 24}, {"DE", 22}, {"DK", 18}, {"EE", 20},
{"ES", 24}, {"FI", 18}, {"FO", 18}, {"FR", 27},
{"GB", 22}, {"GE", 22}, {"GI", 23}, {"GL", 18},
{"GR", 27}, {"HR", 21}, {"HU", 28}, {"IE", 22},
{"IL", 23}, {"IS", 26}, {"IT", 27}, {"LB", 28},
{"LI", 21}, {"LT", 20}, {"LU", 20}, {"LV", 21},
{"MC", 27}, {"ME", 22}, {"MK", 19}, {"MT", 31},
{"MU", 30}, {"NL", 18}, {"NO", 15}, {"PL", 28},
{"PT", 25}, {"RO", 24}, {"RS", 22}, {"SA", 24},
{"SE", 24}, {"SI", 19}, {"SK", 24}, {"SM", 27},
{"TN", 24}, {"TR", 26}
};
Run Code Online (Sandbox Code Playgroud)
Llo*_*oyd 15
你可以这样做:
let lengthsByCountry: { [key: string]: number; } = {};
Run Code Online (Sandbox Code Playgroud)
然后初始化项目:
lengthsByCountry["AD"] = 24;
Run Code Online (Sandbox Code Playgroud)
据我所知,目前内联初始化没有直接映射.
小智 8
您可以使用Map对象。Map是ES6中引入的新数据结构,可让您将键映射到值,而没有使用对象的缺点。
例如
let map = new Map();
map.set("A",1);
map.set("B",2);
map.set("C",3);
Run Code Online (Sandbox Code Playgroud)
它只是一个 javascript 对象。
export interface Dto {
lengthsByCountry: { [name: string]: string };
}
Run Code Online (Sandbox Code Playgroud)
您可以在Record的帮助下创建一个类型
type TestType = Record<string, number>;
const stepInfo: TestType = [
"a": 1,
"b": 2
];
Run Code Online (Sandbox Code Playgroud)