Поделиться через


Стратегия обучения разработчиков JavaScript и TypeScript#

C#, TypeScript и JavaScript являются членами семейства языков C. Сходство между языками помогает быстро повысить эффективность работы в C#.

  1. Аналогичный синтаксис: JavaScript, TypeScript и C# находятся в семействе языков C. Это сходство означает, что вы уже можете читать и понимать C#. Существует несколько различий, но большая часть синтаксиса совпадает с JavaScript и C. Фигурные скобки и точка с запятой знакомы. Операторы управления, такие как if, switch elseсовпадают. Цикловые операторы for, whileи do...while одинаковы. Одинаковые ключевое слово и class находятся как в C#, так и interface в TypeScript. Модификаторы доступа в TypeScript и C# public privateодинаковы.
  2. Маркер=>: все языки поддерживают упрощенные определения функций. В C# они называются лямбда-выражениями в JavaScript, они обычно называются функциями со стрелками.
  3. Иерархии функций: все три языка поддерживают локальные функции, которые являются функциями, определенными в других функциях.
  4. Async / Await: все три языка используют одинаковые async и await ключевое слово для асинхронного программирования.
  5. Сборка мусора: все три языка используют сборщик мусора для автоматического управления памятью.
  6. Модель событий: синтаксис C#eventаналогичен модели JavaScript для событий объектной модели документа (DOM).
  7. Диспетчер пакетов: NuGet — это наиболее распространенный диспетчер пакетов для C# и .NET, аналогичный npm для приложений JavaScript. Библиотеки C# предоставляются в сборках.

При продолжении обучения C#вы узнаете основные понятия, которые не являются частью JavaScript. Некоторые из этих понятий могут быть знакомы с вами, если вы используете TypeScript:

  1. Система типов C#: C# — это строго типизированный язык. Каждая переменная имеет тип, и этот тип не может измениться. Вы определяете class или struct типы. interface Определения, определяющие поведение, реализованное другими типами. TypeScript включает многие из этих понятий, но так как TypeScript построен на JavaScript, система типов не так строга.
  2. Сопоставление шаблонов: сопоставление шаблонов включает краткие условные операторы и выражения на основе формы сложных структур данных. Выражение проверка, is если переменная "является" некоторым шаблоном. Выражение на основе switch шаблонов предоставляет широкий синтаксис для проверки переменной и принятия решений на основе его характеристик.
  3. Интерполяция строк и необработанные строковые литералы: интерполяция строк позволяет вставлять вычислянные выражения в строку, а не использовать позиционные идентификаторы. Необработанные строковые литералы позволяют свести к минимуму escape-последовательности в тексте.
  4. Типы, допускающие значение NULL и не допускающие значение NULL: C# поддерживает типы значений, допускающие значение NULL, и ссылочные типы, допускающие значение NULL, путем добавления ? суффикса к типу. Для типов, допускающих значение NULL, компилятор предупреждает вас, если вы не проверка перед null отменой ссылки на выражение. Для типов, не допускающих значение NULL, компилятор предупреждает вас, если вы можете назначить null значение этой переменной. Эти функции могут свести к минимуму System.NullReferenceExceptionисключение приложения. Синтаксис может быть знаком из использования ? TypeScript для необязательных свойств.
  5. LINQ: интегрированный язык запросов (LINQ) предоставляет общий синтаксис для запроса и преобразования данных независимо от его хранилища.

По мере того как вы узнаете больше других различий, становятся очевидными, но многие из этих различий меньше в область.

Некоторые знакомые функции и идиомы из JavaScript и TypeScript недоступны в C#:

  1. динамические типы: C# использует статическую типизацию. Объявление переменной включает тип, и этот тип не может измениться. В C# есть dynamic тип, предоставляющий привязку среды выполнения.
  2. Наследование прототипов: наследование C# является частью объявления типа. Объявление C# class указывает любой базовый класс. В JavaScript можно задать свойство, чтобы задать __proto__ базовый тип для любого экземпляра.
  3. Интерпретированный язык: код C# должен быть скомпилирован перед его запуском. Код JavaScript можно запускать непосредственно в браузере.

Кроме того, несколько дополнительных функций TypeScript недоступны в C#:

  1. Типы союзов: C# не поддерживает типы объединения. Однако проектные предложения выполняются.
  2. Декораторы: C# не имеет декораторов. Некоторые распространенные декораторы, например @sealed зарезервированные ключевое слово в C#. Другие распространенные декораторы могут иметь соответствующие атрибуты. Для других декораторов можно создать собственные атрибуты.
  3. Более простительный синтаксис: компилятор C# анализирует код более строго, чем требует JavaScript.

Если вы создаете веб-приложение, рекомендуется использовать Blazor для создания приложения. Blazor — это веб-платформа с полным стеком, созданная для .NET и C#. Компоненты Blazor могут выполняться на сервере, как сборки .NET или на клиенте с помощью WebAssembly. Blazor поддерживает взаимодействие с любимыми библиотеками JavaScript или TypeScript.