Перейти к содержимому

Перечисления (enums) в TypeScript — это УЖАС. Вот почему.

Michigan TypeScript

0:00 / 0:00

Перечисления (enums) в TypeScript — это УЖАС. Вот почему.

75 274 просмотра · 3 года назад
Michigan TypeScript
22,4 тыс. подписчиков
75 274 просмотра · 3 года назад
Перечисления TypeScript уже порядком надоели. В первые дни, до того, как объединения строк стали такими мощными, другого варианта не было. Сегодня же они приносят больше проблем, чем пользы. В этом докладе рассматриваются некоторые проблемы с перечислениями, а также некоторые решения этих проблем. Идеального решения не существует, но, возможно, и идеального решения, использующего перечисления TypeScript, тоже нет. :P 00:00 Как работают перечисления в целом 00:45 Значение перечислений по умолчанию 01:00 Первая ошибка перечислений 01:30 Попытка исправить эту проблему с обязательными индексами 02:00 Как выглядят перечисления во время выполнения? 02:50 Еще один недостаток: аргументы функций 03:43 Обход проблемы с аргументами функций 04:31 Есть «ружья» (даже с обходными путями) 04:47 Лучший подход, чем перечисления: POJO 06:14 Вопрос от аудитории: почему бы просто не создать объединение строк? 06:59 Вопрос от аудитории: значения во время выполнения для некорректного аргумента функции? 07:56 Комментарий от аудитории: это всё ещё просто JavaScript 08:26 Вопрос от аудитории: есть ли какие-либо ключи в перечислении? 09:22 Комментарий от аудитории: артефакты времени выполнения TypeScript === плохо 10:06 Вопрос от аудитории: как вы справляетесь с вариациями? 11:25 оператор satisfies может помочь 12:29 как решить новую проблему, возникшую при использовании объектов Аарон Харпер (https://github.com/goodoldneon) — инженер-программист, который увлекается садоводством, велоспортом и тратит слишком много времени и денег на избыточную домашнюю лабораторию. Запись сделана 1 ноября 2022 года в Cahoots (https://cahoots.com) в Анн-Арборе, штат Мичиган. Discord:   / discord   Twitter:   / mitypescript   Mastodon: https://fosstodon.org/@MichiganTypeSc... Instagram:   / michigantypescript   TikTok:   / michigantypescript