Никогда так не делай #javascript #typescript #ts #js #frontend #react #лайфхак #фишка #фронтенд

preview_player
Показать описание
Почему нельзя использовать object в качестве типизации объекта в typescript
Рекомендации по теме
Комментарии
Автор

Еще можно сделать так, но вариант с Record выглядит более читаемым:

{ [key: string]: unknown }

kakieToYroki
Автор

TypeScript это такая штука, которая делает простые вещи сложными, а сложные any

ИванКривилёв-рь
Автор

в объекте ключом может быть не только String, а также Symbol

enagtim
Автор

Лучше писать вместо string PropertyKey

EvilYou
Автор

В объекте ещё тип Symbol может быть ключом

OlegTar
Автор

Если лень типизировать, зачем тогда испозовать тайпскрипт в принципе? А для внешних данных, лучше всегда использовать валидатор, типа Зода, типы сами сгенерируются на основе схемы, мало ли апи поменялось, а клиент - нет, валидатор не пропустит не корректные данные и не даст сломать клиент.

vildivent
Автор

Можно использовать дженерик и типизировать ответы от ручек. В случае, если пока лень, то поставить any на время разработки, но с проверкой TSLint'а на no-any и настроенными пайплайнами, чтобы это не попало в прод.

ПавелФомин-оо
Автор

Хорошее видео, буду подалуй использовать его как антипатерн, и писать минус в карму тем кто так будет делать на собесах😅

kexforlecture
Автор

какой смысл передавать Object как тип, если он ничего не "типизирует"? это тоже самое что писать any.
Тем более, зачем использовать TS, если ты не используешь типы?😂

NO
Автор

Посоветуйте хорошую книгу или ресурипо изучению ts, пожалуйста)

HroHamada
Автор

Если ты передашь Object Typescript начнет ругаться, нужно передавать object, тогда все норм

splcell
Автор

Делаю так только на стадии, когда не описана модель получаемых с сервера данных или они очень огромные, чтобы описать их потом.

dimon.digital
Автор

Пишешь такой интерфейсы, а тут вот оно как можно.

Asadzul
Автор

А вы не передавайте какие попало объекты и не нужно будет такой ерундой страдать)

batowski
Автор

А можно не лениться, зайти в документацию апи и скопировать тип

DubinArtur
Автор

Вроде Объект (с большой буквы) является нерекомендуемым типом для использования всегда. А вот с маленькой - нет.

karelalex
Автор

Можно использовать просто object (с маленькой буквы)
UPD: признаю, ошибся)

dmtrkskv
Автор

функции не объекты. кер его пойми что. пытался в конструктор передать функцию пишет что не объект, выводишь typeof говорит тип function, а function как тип нету в тайп скрипте... ну крч.
Экземпл:
function size(){...}
new Tapok(size)

нормально не принимает. только any

O_Hat
Автор

Нет конечно, пишу просто any и всё. Лол. А в общем читай документацию про JS/TS, список типов, не всё там объект.

AxisPod
Автор

С Record куча проблем в дженериках. Далеко не лучший способ.

blackFortuna