«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/08/12 14:49:33  №1452047 1
Пытался написать, но макак не пропускает, в общем вот мой высер https://pastebin.com/Mf6j8QnR
Суть в чем: тайпскрипт хорошая штука, но меня вымораживает, что любые внешние данные творят что хотят в моих строго типизированных для компиляции скриптах. Пришел null вместо числа? Ну все пизда тебе.
Как?! Как это всё правильно отрабатывать? Где проверять, преобразовывать, надо ли вообще. Как это делается в PHP? Опушка, помоги! SomeApprentice, ты нырнул глубоко в это дерьмо, может сможешь помочь?
Ответы: >>1452078
Аноним 2019/08/12 16:05:52  №1452078 2
>>1452047
Тайпскрипт не занимается валидацией в рантайме и никогда не будет, так как это повлечёт изменение скомпилированного JS. Валидировать пришедшие данные из внешнего мира нужно вручную, однако есть библиотеки, облегчающие эту задачу. Ты описываешь правила валидации, а библиотека выведет TS тип, чтобы в коде не делать 2 раза похожую работу: описывать тип, а потом дублировать его правилами валидации. Примеры:
- https://github.com/pelotom/runtypes#example
- https://medium.com/@ottoki/runtime-type-checking-with-io-ts-in-typescript-14465169fb02

Вот тут на хабре люди рассказывают как борятся с проблемой:
- https://habr.com/ru/post/453502/
- https://habr.com/ru/post/450238/
У нас есть проект, где для рантайм валидации используется typestack/class-validator + typestack/class-transformer. Проблему решает, но код на декораторах получается перегруженным.