В TypeScript, в массиве или аналогичной структуре данных, как я могу сопоставить строку с идентификатором, гарантируя, что разрешен только определенный диапазон идентификаторов?
Вот что я хочу сделать. Это отлично работает. Однако мне интересно, есть ли более краткий способ достижения этого?
enum ETypeId {
alpha = "a",
beta = "b",
gamma = "g"
}
interface IType {
id: ETypeId,
title: string,
}
myTypes: IType[] = [
{ id: ETypeId.alpha, title: "Alpha" },
{ id: ETypeId.beta, title: "Beta" },
{ id: ETypeId.gamma, title: "Gamma" }
];
Как есть, я должен сделать следующее, чтобы перейти от id
к title
:
function getTypeForTypeId( typeId: ETypeId ): IType {
return myTypes.find( type => type.id == typeId );
}
Могу ли я использовать другую структуру данных, которая делает некоторые из приведенного выше кода более краткими, или это уже так хорошо, как получается?
Пояснение:
"a"
- это то, что хранится в моей базе данных
ETypeId.alpha
- это способ доступа к нему в моем коде
"Alpha"
- это то, что отображается пользователю.