Ошибка преобразования строки в типизированный список - typescript


0

Мне нужно преобразовать строку (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 type is UrlStatus

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

Что я делаю не так?

1 ответ

0

Ваш синтаксис немного отключен:

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]);

Выход:

2