Здравствуй, дорогой друг. Сегодня я постараюсь сделать все возможное, чтобы прозвучавшая из чьих-то уст фраза: «Я пишу на TypeScript,» — не возводила человека, это произнесшего, в ранг богов.

Миф «TypeScript — это язык программирования»

JavaScript — это язык программирования, а TypeScript — это синтаксический сахар, который делает твою жизнь проще, когда ты пытаешься использовать лучшие ООП-практики при разработке на JS.

Миф «TypeScript надо изучать»

Чтобы написать класс в JS надо много чего изучить. И даже при наличии знаний, можно обосраться и написать лютую дичь.

Ближе к делу

Ну и разберем его по кусочкам.

namespace Xrm.oData — вот так просто и легко объявляется пространство имен с помощью TS.

export class OrderColumn — вот так мы объявляем класс «OrderColumn». Ключевое слово «export» говорит, что класс доступен не только в пределах пространства имен (читай, публичный).

*Задача со звездочкой: найди объявление конструктора.

public column: string = »; — объявление публичного поля типа string.

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

Не знаю как тебе, но мне от одного объявления пространства имен хочется плакать.

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

Зачем нужен TypeScript

Как я уже писал выше: это просто синтаксический сахар. Он не запретит тебе выстрелить в ногу из винтовки, но сделает все возможное, чтобы отсрочить этот момент. Используя TS ты делаешь код чище и читабельнее, что крайне важно на этапе поддержки проекта. Ты можешь использовать перечисления, интерфейсы, наследование и уровни доступа (public, private, protected), не гугля как делать это на чистом JS (спойлер: protected — никак).

Где скачать или почитать об этом божественном расширении?

Ну на сайте конечно же. В студию ставится как расширение и для своей работы требует минимум усилий: наличия config-файла, чтобы компилятор знал как перегонять ts-файлы в js.

О каких проблемах я должен знать?

TS-компилятор может объединить файлы, но он не занимается минификацией. Т.е. если два класса находятся в разных файлах, но в одном и том же пространстве имен, то они оба будут обернуты в лапшу из скобочек.

Нельзя C#-классы перегнать в TS-классы. Т.е. если у тебя есть код на сервере и тебе его нужно продублировать на клиенте, то это придется делать ручками.

Ну и не желательно часть проекта писать на чистом JS, а часть на TS. Чисто из эстетических соображений. Поэтому данный нюанс надо обговорить на старте проекта и писать на чем-то одном.

 

shwan

Программист .NET

×
%d такие блоггеры, как: