darakanoit
@darakanoit

Имеет ли смысл TypeScript, если на том же backend php?

Вопрос вызван малым недопониманием, TS позволяет нам отлавливать ошибки на уровне написания кода.. но на выходе все равно ведь получим JS, без типов и всего прочего.(тут ещё ок).
Но ведь мы не знаем точно какой тип данных вернёт бэк(привет php c попыткой вернуть 3.0 числом, а не стрингом). Преимущество TS тут разве не падает? Если мы не можем с такой же точностью контролировать типы на бэке?
  • Вопрос задан
  • 1062 просмотра
Пригласить эксперта
Ответы на вопрос 4
@dimoff66
Кратко о себе: Я есть
1) Что вы получаете на выходе в js - вообще никого не волнует, минифицированный код никто в здравом уме ни читать ни править не станет. Вся типизация - это контроль за порядком во время разработки.

2) PHP может вернуть только один тип данных - строку. Если она в формате json - то типы в json одинаковы для всех языков и при JSON.parse будут преобразованы в типы js.

Так что не переживайте, смело подключайте TS, типизация дело хорошее, тем более что в сравнении с такими языками как Java или C# в TS она весьма щадящая.
Ответ написан
Комментировать
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Конечно. Backend - соверншенно другая система.

Преимущество TS - отлов ошибок на этапе компиляции (до запуска кода), чтобы "бить" по рукам JS разрабу, если тот пишет фигню. Если в общих словах.


Но ведь мы не знаем точно какой тип данных вернёт бэк(привет php c попыткой вернуть 3.0 числом, а не стрингом). Преимущество TS тут разве не падает? Если мы не можем с такой же точностью контролировать типы на бэке?


Для решения таких проблем существуют другие инструменты - документация. Можно ещё притянуть Swagger (https://swagger.io/).

Если хочешь проверять типы данных в runtime, то советую посмотреть в сторону JSON Schema Validation (https://json-schema.org/implementations.html).

Swagger - актуален для документации, т.к. даёт спецификацию API.
JSON Schema Validation - можно затянуть и на фронт, и на бек.
Ответ написан
Комментировать
dima9595
@dima9595
Junior PHP
В PHP (^7.0) то же есть тип возвращаемых данных. Просто после скобок нужно указать тип возвращаемых данных.
Вот об этом писали уже на хабре: https://habr.com/ru/post/248721/
Ответ написан
Комментировать
MvcBox
@MvcBox
Software Engineer [C/C++/JS(for Node.js)/etc]
Но ведь мы не знаем точно какой тип данных вернёт бэк(привет php c попыткой вернуть 3.0 числом, а не стрингом).

https://www.npmjs.com/package/typescript-is
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы