Стратегия обучения разработчиков JavaScript и TypeScript#
C#, TypeScript и JavaScript являются членами семейства языков C. Сходство между языками помогает быстро повысить эффективность работы в C#.
- Аналогичный синтаксис: JavaScript, TypeScript и C# находятся в семействе языков C. Это сходство означает, что вы уже можете читать и понимать C#. Существует несколько различий, но большая часть синтаксиса совпадает с JavaScript и C. Фигурные скобки и точка с запятой знакомы. Операторы управления, такие как
if
,switch
else
совпадают. Цикловые операторыfor
,while
иdo
...while
одинаковы. Одинаковые ключевое слово иclass
находятся как в C#, так иinterface
в TypeScript. Модификаторы доступа в TypeScript и C#public
private
одинаковы. - Маркер
=>
: все языки поддерживают упрощенные определения функций. В C# они называются лямбда-выражениями в JavaScript, они обычно называются функциями со стрелками. - Иерархии функций: все три языка поддерживают локальные функции, которые являются функциями, определенными в других функциях.
- Async / Await: все три языка используют одинаковые
async
иawait
ключевое слово для асинхронного программирования. - Сборка мусора: все три языка используют сборщик мусора для автоматического управления памятью.
- Модель событий: синтаксис C#
event
аналогичен модели JavaScript для событий объектной модели документа (DOM). - Диспетчер пакетов: NuGet — это наиболее распространенный диспетчер пакетов для C# и .NET, аналогичный npm для приложений JavaScript. Библиотеки C# предоставляются в сборках.
При продолжении обучения C#вы узнаете основные понятия, которые не являются частью JavaScript. Некоторые из этих понятий могут быть знакомы с вами, если вы используете TypeScript:
- Система типов C#: C# — это строго типизированный язык. Каждая переменная имеет тип, и этот тип не может измениться. Вы определяете
class
илиstruct
типы.interface
Определения, определяющие поведение, реализованное другими типами. TypeScript включает многие из этих понятий, но так как TypeScript построен на JavaScript, система типов не так строга. - Сопоставление шаблонов: сопоставление шаблонов включает краткие условные операторы и выражения на основе формы сложных структур данных. Выражение проверка,
is
если переменная "является" некоторым шаблоном. Выражение на основеswitch
шаблонов предоставляет широкий синтаксис для проверки переменной и принятия решений на основе его характеристик. - Интерполяция строк и необработанные строковые литералы: интерполяция строк позволяет вставлять вычислянные выражения в строку, а не использовать позиционные идентификаторы. Необработанные строковые литералы позволяют свести к минимуму escape-последовательности в тексте.
- Типы, допускающие значение NULL и не допускающие значение NULL: C# поддерживает типы значений, допускающие значение NULL, и ссылочные типы, допускающие значение NULL, путем добавления
?
суффикса к типу. Для типов, допускающих значение NULL, компилятор предупреждает вас, если вы не проверка передnull
отменой ссылки на выражение. Для типов, не допускающих значение NULL, компилятор предупреждает вас, если вы можете назначитьnull
значение этой переменной. Эти функции могут свести к минимуму System.NullReferenceExceptionисключение приложения. Синтаксис может быть знаком из использования?
TypeScript для необязательных свойств. - LINQ: интегрированный язык запросов (LINQ) предоставляет общий синтаксис для запроса и преобразования данных независимо от его хранилища.
По мере того как вы узнаете больше других различий, становятся очевидными, но многие из этих различий меньше в область.
Некоторые знакомые функции и идиомы из JavaScript и TypeScript недоступны в C#:
- динамические типы: C# использует статическую типизацию. Объявление переменной включает тип, и этот тип не может измениться. В C# есть
dynamic
тип, предоставляющий привязку среды выполнения. - Наследование прототипов: наследование C# является частью объявления типа. Объявление C#
class
указывает любой базовый класс. В JavaScript можно задать свойство, чтобы задать__proto__
базовый тип для любого экземпляра. - Интерпретированный язык: код C# должен быть скомпилирован перед его запуском. Код JavaScript можно запускать непосредственно в браузере.
Кроме того, несколько дополнительных функций TypeScript недоступны в C#:
- Типы союзов: C# не поддерживает типы объединения. Однако проектные предложения выполняются.
- Декораторы: C# не имеет декораторов. Некоторые распространенные декораторы, например
@sealed
зарезервированные ключевое слово в C#. Другие распространенные декораторы могут иметь соответствующие атрибуты. Для других декораторов можно создать собственные атрибуты. - Более простительный синтаксис: компилятор C# анализирует код более строго, чем требует JavaScript.
Если вы создаете веб-приложение, рекомендуется использовать Blazor для создания приложения. Blazor — это веб-платформа с полным стеком, созданная для .NET и C#. Компоненты Blazor могут выполняться на сервере, как сборки .NET или на клиенте с помощью WebAssembly. Blazor поддерживает взаимодействие с любимыми библиотеками JavaScript или TypeScript.