如何在打字稿中使用C#字典?

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)


Mis*_*tyK 5

它只是一个 javascript 对象。

 export interface Dto {
      lengthsByCountry: { [name: string]: string };
    }
Run Code Online (Sandbox Code Playgroud)


Sad*_*han 5

您可以在Record的帮助下创建一个类型

type TestType = Record<string, number>;
const stepInfo: TestType = [
 "a": 1,
 "b": 2
];
Run Code Online (Sandbox Code Playgroud)