Что общего у Airbnb , Google , Lyft и Asana ? Все они перенесли несколько кодовых баз в TypeScript.
Наши люди любят самосовершенствование, будь то здоровое питание, физические упражнения или больше спать. То же самое относится и к нашей карьере. Если бы кто-то поделился советами как стать программистом, ваши уши бы взволновались.
В этой статье цель быть этим кем-то. Мы знаем, что TypeScript сделает вас лучшим разработчиком JavaScript по нескольким причинам. Вы будете чувствовать себя уверенно при написании кода. Меньше ошибок появится в вашем рабочем коде. Реорганизовать код будет проще. Вы будете писать меньше тестов (ууу!). И в целом, у вас будет лучший опыт написания кода в вашем редакторе.
Что такое TypeScript?
TypeScript — это скомпилированный язык. Вы пишете TypeScript, и он компилируется в JavaScript. По сути, вы пишете JavaScript, но с системой типов. У разработчиков JavaScript должен быть плавный переход, потому что языки одинаковы, за исключением нескольких странностей.
Вот базовый пример функции в JavaScript и TypeScript:
function helloFromSitePoint(name) {
return `Hello, ${name} from SitePoint!`
}
function helloFromSitePoint(name: string) {
return `Hello, ${name} from SitePoint!`
}
Обратите внимание, что они почти идентичны. Разница заключается в аннотации типа для параметра «name» в TypeScript. Это говорит компилятору: «Эй, убедитесь, что когда кто-то вызывает эту функцию, он передает только строку». Мы не будем вдаваться в подробности, но этот пример должен проиллюстрировать минимальный уровень TypeScript.
Как TypeScript сделает меня лучше?
TypeScript улучшит ваши навыки как разработчика JavaScript благодаря:
- давая вам больше уверенности,
- ловить ошибки до того, как они попадут в производство,
- облегчая рефакторинг кода,
- экономя ваше время от написания тестов,
- предоставляя вам лучший опыт кодирования.
Давайте рассмотрим каждый из них немного глубже.
Больше уверенности
TypeScript повысит вашу уверенность при работе в незнакомых базах кода и в больших командах. Если вы знаете TypeScript и присоединяетесь к новой команде или новому проекту, который использует TypeScript, вы будете меньше беспокоиться. Вы знаете, что TypeScript протянет вам руку помощи. Язык обеспечивает большую читабельность и предсказуемость кода, потому что вы можете посмотреть на что-то и сразу понять, как это работает. Это прямой результат системы типов.
Параметры функций аннотированы, поэтому TypeScript знает допустимые типы передаваемых вами значений.
type Color = "red" | "blue" | "green"
// Here, you know color must be of type "Color", meaning one of the three options
function printColor(color: Color) {
console.log(`The color you chose was: ${color})
}
Типы возвращаемых функций будут выводиться или аннотироваться.
function sum(a: number, b: number) { // TS infers the return type as number
return a + b
}
function minus(a: number, b: number): number { // We annotate the return type as number
return a - b
}
Часто с TypeScript код вашего партнера по команде говорит сам за себя. Им не нужно объяснять это вам, потому что типы добавляют контекст к коду. Эти функции позволяют доверять команде больше. Вы работаете на более высоком уровне, потому что проводите меньше времени, беспокоясь о глупых ошибках. Это работает так же и для вашего кода. TypeScript заставляет вас писать явный код. Побочным эффектом является мгновенное повышение качества кода. В конце вы почувствуете себя более уверенно, работая в TypeScript в качестве разработчика JavaScript.
Меньше производственных ошибок
TypeScript будет ловить ваши возможные производственные ошибки во время компиляции, а не во время выполнения. Когда вы пишете код, TypeScript будет кричать на вас, если что-то не так. Например, взгляните на этот пример:
Заметьте, как colors
Это потому, что мы вызываем .forEach
undefined
Это может привести к ошибке в производстве. К счастью, TypeScript сообщает нам, пока мы пишем код, и не будет компилироваться, пока мы его не исправим. Как разработчик, вы должны поймать это, а не ваш пользователь. TypeScript почти всегда устраняет эти типы ошибок, потому что вы видите их, когда ваш код компилируется.
Проще рефакторинг
Рефакторинг кода становится проще с TypeScript, потому что он будет ловить ошибки для вас. Если вы переименуете функцию, она сообщит вам, если вы забудете где-нибудь использовать новое имя. Когда вы изменяете форму интерфейса или типа и удаляете свойство, которое, по вашему мнению, не использовалось, TypeScript исправит вас. Любые изменения, которые вы делаете в своем коде, TypeScript будет тем, кто за вами говорит: «Эй. Вы забыли изменить имя в строке 142. »Я слышал, что кто-то однажды назвал это« непрерывным рефакторингом », потому что вы можете быстро рефакторировать большие части кодовой базы. Это прекрасная вещь и оказывается более ремонтопригодной для будущего.
Меньше юнит-тестов
TypeScript устраняет необходимость в некоторых модульных тестах, таких как тесты сигнатур функций. Возьмите эту функцию, например:
interface User {
name: string;
age: number;
}
function getAge(user: User) {
return user.age
}
Нам больше не нужен модульный тест, чтобы убедиться, что getAge
Если разработчик попытается вызвать getAge
В результате это позволяет нам тратить меньше времени на написание простых модульных тестов и больше времени на написание того, что нам нравится больше.
Лучший опыт кодирования в редакторе
Одна из областей, где TypeScript принесет вам наибольшую пользу, — это производительность через автозаполнение и «будущий» JavaScript. Большинство основных IDE и редакторов, включая Atom, Emacs, Vim, VSCode, Sublime Text и Webstorm, имеют плагины для инструментов TypeScript. Мы будем ссылаться на некоторые функции, доступные в VScode для этого раздела.
Первая функция, которая увеличит вашу производительность — это автозаполнение. Это когда вы ищете метод или свойство класса или объекта. Если TypeScript знает форму, он может автоматически заполнить имя для вас. Вот пример:
Обратите внимание, что я не закончил вводить свойства для myFriend
Здесь вы видите, что TypeScript начинает предлагать имя свойства, потому что оно знает, что форма соответствует User
Я пишу функцию с именем printUser
Я хочу записать полное имя пользователя в консоль. Я иду, чтобы определить lastName
Наведя указатель мыши на мой редактор, TypeScript говорит мне: «Свойство lastName не существует для типа« Пользователь ». Это супер полезно! Это поймало мою глупую ошибку для меня. Довольно аккуратно, правда?
Вторая особенность, которая улучшает наш опыт, — это способность TypeScript позволить вам писать «будущий» JavaScript. Обычно для этого нам нужно несколько плагинов Babel. TypeScript, с другой стороны, предоставляет эту же функцию, но за счет одной зависимости. Команда TypeScript отлично справляется со спецификацией ECMAScript, добавляя языковые возможности Stage 3 и выше. Это означает, что вы можете использовать более новые дополнения к JavaScript, не мешая множеству зависимостей или конфигурации. Это позволит вам опередить своих коллег по JavaScript. Обе эти функции в совокупности повысят вашу эффективность как разработчика JavaScript.
С чего начать?
Если вы заинтересованы в начале работы с TypeScript, есть несколько мест, с которых вы можете начать, в зависимости от того, как вы учитесь лучше всего.
- Машинопись через 5 минут . Краткое руководство по TypeScript Handbook даст вам практический опыт работы с языком. Он проведет вас через основные функции языка. Все, что вам нужно, — это пять минут, редактор и готовность учиться.
- Введение в TypeScript . Если вы хотите пойти дальше, мы рекомендуем эту статью для начинающих, которая будет охватывать несколько основных понятий и запускать TypeScript локально.
- Программирование TypeScript Борисом Черным . Для тех, кто любит углубляться — и мы имеем в виду глубоко — ознакомьтесь с этой книгой О’Рейли Бориса Черного. Он охватывает основы вплоть до расширенных возможностей языка. Мы настоятельно рекомендуем это, если вы хотите поднять свои навыки JavaScript на следующий уровень.
Выйди и попробуй сам!
Важно слышать мнение других, но ничто не сравнится с формированием собственного мнения на основе опыта. Мы знаем, что TypeScript повысит вашу уверенность, поможет вам быстрее выявлять ошибки и реорганизовывать код, а также улучшит вашу общую производительность. А теперь иди, попробуй сам TypeScript и дай нам знать, что ты думаешь!
Больше TypeScript скоро появится!
Если вам понравилась эта статья, вы будете рады узнать, что у нас есть еще статьи о TypeScript. Не спускайте своих глаз очищенными в ближайшие месяцы. Мы рассмотрим такие темы, как начало работы с TypeScript и использование его с такими технологиями, как React. До тех пор, счастливого кодирования!