Рубрики
Без рубрики

Почему так много шумиха по напечатанию?

Некоторые контекст прежде всего, не поймите меня неправильно, типы великолепны. Я использую Teadncript каждый … Tagged CadeScript, JavaScript, WebDev.

Какой-то контекст

Прежде всего, не поймите меня неправильно, Типы отличные . Я использую ThmyScript каждый день на работе, и цель этого поста не под сомнение преимущества системы типа. Потому что типы дают контекст, спасите нас от глупый ошибки и позволяют избежать проблем с производительностью, избегая большая часть вывода автоматического типа, выполненного интерпретатором JS во время JIT Compilation и время выполнения. Я думаю, что кто-нибудь должен использовать систему печатать, в то время как строить JavaScript, если он когда-либо думает, чтобы поделиться этим или поддерживать его в долгосрочной перспективе.

Но столько, сколько я ценю преимущества Tymdercript в качестве системы типа (даже если несколько моих коллег используют столько любой , что в большинстве мест приложения это не приносит никакой выгоды совсемю по сравнению с чистым JavaScript Отказ Я скептически относится к Typescript в качестве компилятора. Все следующие аргументы и рефлексия касаются Tearscript в качестве компилятора и SuperSet javaScript вместо системы, усовершенствовающей JavaScript системы типа.

Это добавляет много сложности для минимальной выгоды

При использовании Teamscript вам нужно настроить его И это не просто. Варианты вообще не ясны, и документация неясна. В качестве примера, спросите себя, какие различия между цель и модуль опции. Хорошо, так цель простой портиться: Не на самом деле Это ваша целевая среда … Но ждать ?!? Что именно ES2017? И ES2018? Давайте посмотрим на ES2017 в качестве примера:

Ок, отлично. Но какой навигатор поддерживает этот точный набор функций? Другой вопрос, вы знали, что ES2017 был этот набор функций без проверки ссылки на могу ли я использовать ссылку? Я не сделал.

Поэтому, используя целевые параметры, которые вы должны знать, с какой версией ECMAScript функция, которую вы хотите. Затем вы должны проверить, поддерживают ли ваш целевой браузер этой функцией или (если функция многофункциональная), напишите код в любом случае и справитесь с раздутым кодом. Если вы проверяете можно использовать ссылку, вы также должны заметить, что даже если все этот список функций являются частью ES2017. Это ничего не значит для версии браузера. Поскольку веб-браузер реализует функции ECMAScript независимо. Если бы вы использовали Babel, вы можете использовать @ Babel/Preset-Env и используя Браузеры Цель точно браузера, который вы хотите с Значительно запрос (нота: ты все еще должен быть озерным о продукции Но вы можете быть больше серин, зная, что по крайней мере код, который вы отправляете пользователю, полезно)

Существует также тот факт, что параметры компилятора включают в себя варианты о завершении. Что может быть объяснено тем фактом, что Tearmcript Clex является полностью обработанным процессом пакета. Но это не так. В большинстве случаев вам по-прежнему нужно добавить настоящий модуль Bundler для создания цепи, чтобы иметь возможность сделать что-то реальное с помощью Typeyctry.

Наконец, есть тот факт, что Compiler TypeyctS имеет некоторое ограничение. Например, если вы хотите использовать динамический импорт, вы должны использовать Модуль: «Esnext» который вы не сможете прицеливаться на ES2015, даже если вы поддерживаете его Bundler (WebPack или Parcel). Это означает, что вы не можете разделить свой код во время нацеливания на устаревших браузерах …

TeampScript не на самом деле не суперс javascript больше

Существуют некоторые различия между чистым JavaScript и Teadercript. Например, между @DeCorators в Teadercript и что в настоящее время нормализуется в Ecmascript. Что, вероятно, приведет к некоторому различию во время выполнения при использовании их после того, как они будут реализованы браузером.

Кроме того, можно написать Сегодня Действительный код, который будет анализировать по-разному по фирме и JavaScript Парсер, который приведет к другому выполнению прохождения. Я знаю, я знаю, это действительно маловероятно, что вы когда-либо сталкиваетесь с любой упрецейской таковой. Но это не останавливает реальность этого.

Вместо этого используйте jsdoc

Как я уже говорил, я все еще думаю, что мы должны ввести наш код. На самом деле это действительно легко сделать даже без Typeyctry. Мы просто должны написать Декларацию JSDOC в простом файле JavaScript Отказ

Затем мы можем использовать Tymdercript для того, чтобы выбрать их с помощью опции –checkjs. Вы также можете установить VS-код (и, вероятно, большую часть текстового редактора и IDE в дикой природе), чтобы показать проверку типа на файле JS, включив проверку JS в параметрах.

Большое преимущество для использования JSDOC вместо Teadercript заключается в том, что вы пишете JavaScript, который удаляет любую потребность в шаге компиляции. Вы все еще можете использовать Babel, если хотите Но вы также можете быть счастливы с JavaScript.

Некоторые Ressource о JSDOC:

Теперь я не прошу вас бросить Typescript. Если вы довольны этим, придерживайтесь этого. Мне просто интересно, почему все подпрыгнули в Teamecript Train, когда по большей части я вижу больше ограничений, чем выгода по сравнению с некоторыми обычными типами, включенными в комментарии.

PS: Я не говорил о Цлинте против Эслинта Потому что все согласны с превосходством Tymdercript . Поскольку я говорил о брауристере, я должен также поговорить о одном из моем любимого плагина для Eslint, который является eslint-plugin-Compat

PPS: английский не мой родной язык, поэтому не стесняйтесь ничего исправлять. Я использовал корректор, но его, вероятно, не идеально.

Оригинал: “https://dev.to/brieucp/why-so-much-hype-over-typescript-4p80”