Как лучше оформлять и использовать перечисления и типы в ts?

Ссылка скопирована
0 ответов

По вводным: при написание имени перечисления, я заискал в поиске, как его правильно оформить, пишут разное, использовать для перечислений "Screaming Snake Case" (ENUMПо вводным:), использовать множественное числоEnumsПо вводным:, использовать обычное название Enum, но писать тип в формате EnumType или TEnum. Но чаще встречается вариант с использованием одного и того же имени Enum в обоих случаях.

По вводным: в качестве примера, создал 2 файла, один с перечислением и типами другой с использованием этих сущностей.

// types.ts export const Enum = { a: 'a', b: 'b', } as const; export type Enum = typeof Enum[keyof typeof Enum];

// functions.ts import { Enum } from './test.js'; function fn(areas: Enum): Enum { switch (areas) { case Enum.a: return Enum.a; case Enum.b: default: return Enum.b; } }

Нужно понять: какие форматы названий используете вы? А если там еще интерфейс, то писать IEnum? А если схема из zod, то писать EnumSchema? Тогда почему I идет вначале, а Schema в конце?

export const Enum = { a: 'a', b: 'b', } as const; export const EnumSchema = z.enum(Enum);

Нужно понять: и вопрос по zod, если планируется его использовать в проекте и в других местах, то нормально ли писать сразу так?

// export type Enum = typeof Enum[keyof typeof Enum]; export type Enum = z.infer<typeof Enum>;

P.S. Используюconst as const, т.к:
НаПо вводным: tSConf 2020: TalkScript with the TypeScript TeamСейчас ситуация такая: создателями TS было сказано примерно следующее: - вам следует избегать перечислений в TypeScript. Они являются ошибкой языка (как отметили создатели), поскольку противоречат целям TypeScript как системы типов и не вносят дополнительных функций во время выполнения. Мы также глубоко верим в обратную совместимость. Мы никогда не отменим то, что уже внедрили.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно