Машинопись ENUM - PullRequest
       0

Машинопись ENUM

0 голосов
/ 14 января 2020

У меня есть список опций, которые необходимо сохранить как ENUM. Проблема заключается в том, что все параметры имеют буквенную цифру c.

Пример списка

 1.134/2394 x 3-xyz
 2.123/234 y 3-ery 
 3.345/99 t 4-red
 4.4.1hv 3 secondary
 5.2.51hv 3 secondary
 6.1.61hv 3 secondary

Как мы храним это как параметры в Typescript. Любые мысли будут высоко оценены.

Ответы [ 2 ]

0 голосов
/ 14 января 2020

На самом деле enums являются javascript объектами. Когда вы создаете enum, у вас есть выбор доступа к объекту.

Так что, если ваши ключи содержат алфавитный указатель c и пробелы, вы не можете получить доступ с помощью . после имени перечисления, например - StatusCode.Ok 2 Это приведет к ошибке.

Итак, что касается вашего дела, вам нужно получить доступ к вашему объекту либо с помощью назначенного вами номера, либо с помощью назначенной вами клавиши. Это твой выбор. Таким образом, вы можете получить доступ к этому StatusCode['OK'].

Посмотрите на приведенный ниже пример. Источник

/*
enum StatusCodes {
  OK = 200,
    BadRequest = 400,
    Unauthorized,
    PaymentRequired,
    Forbidden,
    NotFound
};
*/

// The above enum is converted to the Javasscript object like this. 

var StatusCodes;
(function(StatusCodes) {
  StatusCodes[StatusCodes["OK"] = 200] = "OK";
  StatusCodes[StatusCodes["BadRequest"] = 400] = "BadRequest";
  StatusCodes[StatusCodes["Unauthorized"] = 401] = "Unauthorized";
  StatusCodes[StatusCodes["PaymentRequired"] = 402] = "PaymentRequired";
  StatusCodes[StatusCodes["Forbidden"] = 403] = "Forbidden";
  StatusCodes[StatusCodes["NotFound"] = 404] = "NotFound";
})(StatusCodes || (StatusCodes = {}));

// Ways to access the enum. 
console.log(StatusCodes.OK);
console.log(StatusCodes["OK"]);
console.log(StatusCodes["200"]);
0 голосов
/ 14 января 2020

Вы можете сделать что-то вроде этого, верно?

enum x {
    '1.134/2394 x 3-xyz' = 2,
    '2.123/234 y 3-ery',
}

console.log(x['2.123/234 y 3-ery'])
// this will print '3'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...