打字脚本字符串到枚举转换错误



我需要将字符串(UrlStatus(转换为enum(Status(。

export enum Status {
available,
inProgress
}
export type UrlStatus = 'available' | 'inprogress';
// something wrong here
export const UrlStatusToStatus: { [UrlStatus]: Status } = {
available: [Status.available],
inprogress: [Status.inProgress]
}

我在尝试使用UrlStatusToStatus[status] //status's type is UrlStatus时收到此错误

Element implicitly has an 'any' type because expression of type 'UrlStatus' can't be used to index type '{}'.
Property 'available' does not exist on type '{}'.

我做错了什么?

你的语法只是稍微偏离了一点点:

enum Status {
available = 1,
inProgress = 2
};
type UrlStatus = 'available' | 'inprogress';
const UrlStatusToStatus: { [key in UrlStatus]: Status } = {
available: Status.available,
inprogress: Status.inProgress
};
console.log(UrlStatusToStatus['inprogress']);

输出:

阿拉伯数字

最新更新