TypeScript: Condition types и infer

preview_player
Показать описание
Посмотрим как можно получить тип элемента массива с помощью conditional types и infer в TypeScript:
Рекомендации по теме
Комментарии
Автор

Сказать что я мало что понял, значит ничего не сказать 😅

truedivan
Автор

Чтобы учитывать readonly массивы :)))

type WidenLiteral<T> = T extends string
? string
: T extends number
? number
: T extends boolean
? boolean
: T extends bigint
? bigint
: T extends symbol
? symbol
: T



type ArrayElementType<T extends readonly any[]> = WidenLiteral<T[number]>

polioann
Автор

Не до конца вдуплил как работает infer

awenn
Автор

Ваш пример нарушает принцип KISS - keep it simple, stupid) Потом новички будут писать вот такую дичь посмотрев такие видосы, поэтому очень важно подбирать нормальные примеры)

ream_
Автор

вот зачем тайп скрипт если всё это в итоге конвертируется к жава скрипт ?

Maxmudjon
Автор

Узнал про infer, а так сильно мудрено, неужели мы не знаем какой тип будет в массиве или если он придет из запроса то тут даже ts не поможет

FireORcolD
Автор

Ненавижу тайпскрипт😂! А как часто встречаются ошибки типов? Ну вот ты кодищь на реакте и смотришь результат в браузере. Любой новичёк знает особенности типов js - как вообще возможно допускать ошибки? Лично со своего учебногл опыта - писал сайт магазин и единственное что может привести к ошибкам это неправильно написанные северные карточки, где-то строка вместо числа и. т. д.

finespais