在 TypeScript 中,如何将字符串映射到 ID,并确保只允许特定范围的 ID 在数组或类似数据结构中进行?
我想做的事情在这里是有效的。但是,我想知道是否有更简洁的方法来实现这一点?
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"
是显示给用户的内容。