Size: a a a

2020 March 21

M

Mark in Frontend UA
ну кароч можна ще так))) з хелпером (страшним як війна)
источник

M

Mark in Frontend UA
источник

EO

Eugene Obrezkov in Frontend UA
да всё, хватит :)

можно через Reflect.ownKeys() на enum-е, но он тебе вернет не только ключи енума, а ещё и его значения

т.е. если делать


enum SomeType = { ‘foo’, ‘bar’ }

Reflect.ownKeys(SomeType) вернёт foo, bar, 0,  1
источник

EO

Eugene Obrezkov in Frontend UA
если сделать const enum SomeType, тогда это становится только типом
источник

EO

Eugene Obrezkov in Frontend UA
или можно завернуть enum SomeType = { ‘foo’ = ‘foo’, ‘bar’ = ‘bar’}
источник

EO

Eugene Obrezkov in Frontend UA
тогда по идее Reflect.ownKeys() вернёт только foo и bar
источник

EO

Eugene Obrezkov in Frontend UA
плюс, сама по себе рефлексия у тайпскрипта только на уровне декораторов и простеньких get/set

поэтому Reflect.ownKeys работает с енумом только потому, чо это объект
источник

I

Ilya in Frontend UA
Eugene Obrezkov
да всё, хватит :)

можно через Reflect.ownKeys() на enum-е, но он тебе вернет не только ключи енума, а ещё и его значения

т.е. если делать


enum SomeType = { ‘foo’, ‘bar’ }

Reflect.ownKeys(SomeType) вернёт foo, bar, 0,  1
источник

M

Mark in Frontend UA
Eugene Obrezkov
тогда по идее Reflect.ownKeys() вернёт только foo и bar
тільки тип який він поверне буде не (‘foo’ | ‘bar’)[]
источник

EO

Eugene Obrezkov in Frontend UA
Mark
тільки тип який він поверне буде не (‘foo’ | ‘bar’)[]
да, это будет string[] :)
источник

M

Mark in Frontend UA
Object.keys поверне те ж саме
источник

EO

Eugene Obrezkov in Frontend UA
Mark
Object.keys поверне те ж саме
есть немного разница, но я забыл какая, если честно
источник

M

Mark in Frontend UA
а вот щоб з типами то такі треба as
источник

EO

Eugene Obrezkov in Frontend UA
чтобы можно было так с типами крутить, надо чтобы у ТС была рефлексия
источник

EO

Eugene Obrezkov in Frontend UA
ну т.е. если у TS будет нормальная рефлексия, а не декораторы с метадатой, которую ты должен сам сетить, тогда можно будет говорить о том, чтобы в рантайме брать информацию о типах и что-то с ними делать (например, создавать массив)
источник

SS

Serhey Shmyg in Frontend UA
Dmytro Kovalevskyi
Привет, товарищи знатоки.
Есть 1 массив строк.
И массив объектов, ключами которого могут быть только строки из первого массива.
Как мне описать такой тип в TS?
Пришел пока что к такому.
Внизу пример того как выглядит этот объект
Вставлю і свої 5💵 ;)
shorturl.at/bhGX0
источник

EO

Eugene Obrezkov in Frontend UA
по ссылке не открывается(
источник

SS

Serhey Shmyg in Frontend UA
Eugene Obrezkov
по ссылке не открывается(
Повний варік лінка
источник

SS

Serhey Shmyg in Frontend UA
источник

EO

Eugene Obrezkov in Frontend UA
Eugene Obrezkov
по ссылке не открывается(
открывается пример
источник