Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Какой пример необходимости использования строгой типизации в реальных условиях (js vs ts) можете привести?

ПрограммированиеJavascript+3
Анонимный вопрос
  · 469
Лучший
старший разработчик в pseven.io  · 21 июл 2021

Смотря что вы имеете в виду под "строгой типизацией". В русскоязычной литературе так иногда называют сильную типизацию, которой TypeScript как раз не даёт.

TypeScript добавляет опционную статическую типизацию, а по факту просто производит статическую проверку типов на этапе транспиляции в JS, после которой вы получаете обычный JS код с динамической слабой типизацией. Таким образом, проверка типов в TypeScript возможна только на этапе разработки.

Проверка типов помогает программисту делать меньше ошибок. Например, если вы опечатались в имени поля, вы получите ошибку сразу же, до запуска программы:

function getStringSize(str: string): number {
  return str.lenth;
}

Результат:

Property 'lenght' does not exist on type 'string'. Did you mean 'length'?

Если же аналогичная функция будет написана на JS, никакой ошибки не будет даже при выполнении, функция просто всегда будет возвращать значение undefined:

function getStringSize(str) {
  return str.lenth;
}

Неправильное значение уйдёт по цепочке выполнения дальше, найти причину будет сложнее, в итоге исправление такой ошибки выйдет дороже.

Естественно, функция возвращающая длину строки это учебный пример. В реальных проектах код несколько более комплексный, и необходимость предотвращения ошибок там в разы важнее.

Что-то осталось непонятно? Спроси в нашей группе в Телеграме!Перейти на t.me/jstsmentor
1 эксперт согласен

Пример валидации на этапе семантического анализа

Образовательная платформа Хекслет  · 15 июл 2021  · ru.hexlet.io
Очень много динамических языков программирования, которые не имеют статических версий и до сих пор нормально существуют. Поэтому вопрос необходимости больше всё-таки про предпочтения. Самое приятное при подключении Typescript - это расширенные подсказки в IDE в тех случаях, где сущности выбираются динамически. Ещё бывает полезным использовать TS, чтобы чаще... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars
Grand Programmer Deni  · 27 авг 2021  · baskovsky.ru
По моему личному опыту строгая типизация TypeScript отлично подходит для работы с моделями, которые извлекаются, например через GraphQL. Еще хорошим примером служит игровая разработк, где модели описываются игровыми объектами, сложность которых минимизируется как раз статической типизацией. Хорошим вариантом перехода от JS к TS я считаю использование JSDoc. Источник: htt... Читать далее