Эта статья является частью серии статей под названием «Краткое руководство по TypeScript».
Как разработчик JavaScript, если вы всегда беспокоитесь о том, что код будет запущен, вы вдруг сообщите об этом?undefined, Если вам всегда нужно переключаться между файлами, чтобы свериться с интерфейсом при написании кода, если вы собираетесь взять на себя большой проект JS, то пришло время подумать об использовании TypeScript.
Что такое TypeScript
согласно софициальный сайт ТСВведение: TypeScript — это надмножество типов JavaScript, которые могутКомпилируется в чистый JavaScript. Другими словами, TypeScript — это расширенная версия JavaScript. Это также видно из названия TypeScript, TypeScript = Type (тип) + JavaScript.
Итак, зачем давать JavaScript такое «улучшение»? Это начинается с истории развития JavaScript.
Первоначально JavaScript был языком, разработанным для браузеров. Сначала он использовался только для обработки основного взаимодействия с пользователем, такого как обработка форм, отображение всплывающих окон и т. д. Сам JS, как динамический язык, не имеет системы типов, потому что он не предназначен для создания крупномасштабных приложений.
Но в последние годы JavaScript быстро развивается. С появлением Node.js JS больше не ограничивается браузером, а популярность SPA (одностраничных приложений) заставляет фронтенд постепенно двигаться в сторону инженерии, а объем кода проекта стремительно расширяется. Проблема в том, что, в отличие от более зрелых языков, таких как C#, Java и т. д., JS не имеет возможности масштабирования. Свободный код и беспорядочные типы привносят в проект больше неуправляемости и неопределенности.
Для того, чтобы решить эту проблему, крупные компании начали искать решения. А TypeScript — это ответ Microsoft, которым руководит Андерс Хейлсберг, отец C#.
TypeScript дополняет JavaScript неотъемлемой частью создания крупномасштабных приложений: системой типов, обеспечивающей безопасность для разработчиков. В то же время, как расширенная версия JS, TS по-прежнему существует в экосистеме JS, и вы по-прежнему можете использовать различные библиотеки, предоставляемые сообществом JS, просто добавьте файл объявления (в большинстве случаев у сообщества есть уже готовые) .
Как оказалось, TypeScript — это успех. В последние два года TypeScript набирает обороты. Возьмем в качестве примера три интерфейсных фреймворка, по словам Эвана Ю.Планы Vue 3.0, Vue 3.0 будет полностью переписан с использованием TypeScript; React и окружающие его экосистемы активно используют TypeScript, известную библиотеку компонентов React.Ant DesignОн написан на TypeScript, не говоря уже об Angular, сам Angular написан на TypeScript, а языком разработки по умолчанию является TypeScript. Популярность TypeScript очевидна.
Стоит отметить, что согласноStateOfJS 2018Отчет, степень удовлетворенности использованием TypeScript достигает90%.
что такое система типов
Все мы знаем, что данные в JavaScript можно разделить на базовые типы данных и ссылочные типы данных. К основным типам данных относятся:undefined,null,boolean,number,string,symbol(Новое в ES6). Помимо базовых типов данных существуют ссылочные типы, в том числе:Object,Array,Date,Function,RegExpи т.п. Тип, упомянутый здесь, на самом деле является типом в TypeScript.Type. Просто в JavaScript нам не нужно явно писать тип переменной, и одна и та же переменная может быть присвоена разным типам данных. Но в TypeScript тип каждой переменной определен, и нельзя присваивать данные разных типов.
Например:
// JavaScript
let name = 'Hopsken'
name = 5 // 没啥问题
// TypeScript
let name: string = 'Hopsken'
name = 5 // Error: Type '5' is not assignable to type 'string'.
Кроме того, в TS мы также можем указать тип функции. Объявив, какой тип данных функция должна получать и какой тип данных должен возвращать, можно эффективно избежать многих низкоуровневых ошибок.
// TypeScript
function sayHi(person: string) {
return 'Hi, '
+ person
}
sayHi(42) // Error: Argument of type '42' is not assignable to parameter of type 'string'.
Акцент: TypeScript использует статическую систему типов и выполняет анализ типов только во время компиляции.Окончательный скомпилированный исходный код JS не содержит кода с проверкой типов (за исключением самостоятельно добавленного кода). Это следует отличать от проверки во время выполнения.
Таким образом, система типов определяет, как значения и выражения классифицируются по множеству различных типов, как этими типами манипулируют и как эти типы взаимодействуют друг с другом. Через типы мы можем идентифицировать значение или группу значений с определенным значением и целью.
Преимущества системы типов
Выявляйте ошибки заранее.
Основное преимущество статической системы типов заключается в том, что логические ошибки можно обнаружить на ранней стадии, а не до того, как они действительно появятся. Свободный синтаксис JavaScript, хотя и удобен, также делает его хрупким. Благодаря двум приведенным выше примерам вы можете почувствовать преимущества статического анализа типов. Например, я считаю, что многие люди сталкивались с ямой «принудительного преобразования типов» при разработке JavaScript, и использование TypeScript может эффективно избежать этой проблемы.Причина очевидна.
Комфортный опыт разработки.
Во-первых, наличие системы типов дает возможность использовать множество инструментов для помощи в разработке. Например, когда вы вызываете функцию, современные редакторы могут четко сказать вам, сколько аргументов ожидает функция, какие типы аргументов и какие аргументы являются необязательными. Таким образом можно сэкономить много времени на поиск API и повысить эффективность разработки.
Во-вторых, типы имеют определенныеговорит сам за себя(самообъяснение) способность. А типы — это как аннотации к самой программе. Ведь код пишется для того, чтобы его читали. Во многих случаях мы можем понять назначение программы, просто взглянув на сам тип. В отличие от чисто человеческих аннотаций, по мере того, как проект продолжает повторяться, человеческая аннотация может становиться все более и более непонятной, но аннотация типа всегда может точно отражать смысл самой программы.
Еще более мощным, с некоторыми инструментами, документация может быть автоматически создана на основе аннотаций типа. Для получения подробной информации см.typedoc.
высшая абстракция.
Система типов позволяет программисту думать о программе высокоуровнево, освобождая дизайнера от надоедливой низкоуровневой реализации с чувством контура. Разработчики могут выражать программную логику, разрабатывая интерфейсы между подсистемами. То есть пусть дизайн будет отделен от реализации, отражая ощущение IDL (язык определения интерфейса), и пусть дизайн программы вернется к сути.
Суммировать
Эта статья в основном отвечает на три вопроса: что такое TypeScript, что такое система типов и какие преимущества может принести система типов. Теперь мы знаем, что TypeScript на самом деле является дополнением к JavaScript, позволяющим разрабатывать крупномасштабные приложения с использованием JavaScript.
TypeScript — очень мощный инструмент, который вводит ряд технических концепций, которые мы раньше не рассматривали в программах на JavaScript. То, что приносит нам TS, является не просто грамматическим изменением, но более идеологическим изменением. Поверьте мне, чем больше вы узнаете, тем больше вы думаете об этом.
следующее уведомление
В отличие от популярности TypeScript, домашних руководств по TypeScript относительно мало. «Краткое руководство по TypeScript» призвано заполнить этот пробел и помочь новичкам быстро начать работу с TypeScript. В следующем выпуске мы расскажем об основных типах в TypeScript, так что следите за обновлениями. ( ̄▽ ̄)~