Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 February 26

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
это отдельный костыль в ТС  за который хочется убивать
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
типов в рантайме нет, но если вы поставили emitDecoratorMetadata то немношк метадаты от декораторов остаётся
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
(да, я знаю что декораторы это не типы, но и типы и некоторые декораторы - это метадата)
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
типов в рантайме нет, но если вы поставили emitDecoratorMetadata то немношк метадаты от декораторов остаётся
"Если поставили". За это разнообразие настроек наверное тоже хочется убивать))
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
типов в рантайме нет, но если вы поставили emitDecoratorMetadata то немношк метадаты от декораторов остаётся
Мефистофель:
   Корабль испанский трехмачтовый,
   Пристать в Голландию готовый:
   На нем мерзавцев сотни три,
   Две обезьяны, бочки злата,
   Да груз богатый шоколата,
   Да модная болезнь: она
   Недавно вам подарена.
Фауст
   Всё утопить.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
в моём идеальном мире у тайпскрипта должна быть одна настройка "проверять всё - проверять ВООБЩЕ всё"
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
в сценарии проверять ВООБЩЕ всё ни одна встроенная конструкция не должна возвращать any как к примеру это молчаливо делает JSON.parse
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Кстати с этого я начинаю аудит любого TypeScript проекта - подсовываю кастомный билд ТС где вместо any unknown и смотрю где упало
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
в моём идеальном мире у тайпскрипта должна быть одна настройка "проверять всё - проверять ВООБЩЕ всё"
Да иногда из за такого обилия настроек сторонние модули испльзовать очень тяжело. Ибо они не продумуют возможности кастомизировать тип.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
(прошу прощения, плюсики крыса отправила, она видимо тоже согласна
источник

M

Maxim in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
в сценарии проверять ВООБЩЕ всё ни одна встроенная конструкция не должна возвращать any как к примеру это молчаливо делает JSON.parse
В eslint можно выставить настройку no unsafe assignment
источник

M

Maxim in NodeUA - JavaScript and Node.js in Ukraine
Тогда даже скрытые any не получится юзать
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Maxim
В eslint можно выставить настройку no unsafe assignment
насколько я помню нет
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
const foo: SomeType = JSON.parse('...') всё еще работает
источник

M

Maxim in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
const foo: SomeType = JSON.parse('...') всё еще работает
А как корректно вернуть тип из json parse? По-другому никак
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Maxim
А как корректно вернуть тип из json parse? По-другому никак
никак, поэтому должен возвращаться unknown
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
насколько я помню нет
Знаем проблему. Пишем свою обертку. ParseJson :: string -> unknown.
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Стараемся не юзать хаков. И тс сможет принести пользу. Даже в тех же высокоуровневых контрактах.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
Знаем проблему. Пишем свою обертку. ParseJson :: string -> unknown.
Тут у меня претензия к дефолтам
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
TypeScript должен заставлять людей задумываться о типах
источник