Я использую TypeScript для разработки своего приложения.Я пытаюсь создать интерфейс (или тип), который является одной из нескольких констант или случайной строки.
Псевдокод, описывающий то, что я пытаюсь построить:
contants.ts
:
export const ERROR_A = "Error A";
export const ERROR_B = "Error B";
export const ERROR_C = "Error C";
types.ts
:
type SWITCH_ERROR = ERROR_A | ERROR_B | ERROR_C | string
Я знаю, что каждая строка может быть ошибкой.Причина, по которой я хочу сделать это так, заключается в том, что кодовая база может быть легко поддержана, и у каждой известной ошибки есть свой тип.Позднее ошибка будет обработана в операторе switch следующим образом:
switchExample.ts
:
export const someFunc(error: SwitchError): void => {
switch(error) {
case ERROR_A:
// Do something
// ... continue for each error.
default:
// Here the plain string should be handled.
}
}
Проблема в том, что я пытался сделать это так:
import { ERROR_A } from "./some/Path";
export type SwitchError = ERROR_A;
Но это выдает ошибку:
[ts] Cannot find name 'ERROR_A'.
Что я делаю не так?Как можно создать что-то подобное в TypeScript?Или это плохой дизайн?Если да, как еще я могу это сделать?