Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
C#, TypeScript et JavaScript sont tous membres de la famille C de langages. Les similitudes entre les langues vous aident à devenir rapidement productif en C#.
- Syntaxe similaire : JavaScript, TypeScript et C# se trouvent dans la famille C de langages. Cette équivalence entre les langages signifie que vous êtes déjà capable de lire et de comprendre C#. Il existe certaines différences, mais la plupart de la syntaxe est identique à JavaScript et C. Les accolades et les points-virgules sont familiers. Les instructions de contrôle telles que
if,elseetswitchsont identiques. Les instructions de bouclage defor,whileetdo...whilesont identiques. Les mêmes mots clés pourclassetinterfacese trouvent dans C# et TypeScript. Les modificateurs d’accès dans TypeScript et C#, depublicversprivate, sont identiques. - Jeton
=>: Toutes les langues prennent en charge les définitions de fonction légères. En C#, elles sont appelées expressions lambda, en JavaScript, elles sont généralement appelées fonctions de flèche. - Hiérarchies de fonctions : les trois langues prennent en charge les fonctions locales, qui sont des fonctions définies dans d’autres fonctions.
- Async / Await : Les trois langages partagent les mêmes mots-clés
asyncetawaitpour la programmation asynchrone. - Collecte des déchets : les trois langues s’appuient sur un collecteur de déchets pour la gestion automatique de la mémoire.
- Modèle d’événement : la syntaxe de
eventC# est similaire au modèle JavaScript pour les événements DOM (Document Object Model). - Gestionnaire de package : NuGet est le gestionnaire de package le plus courant pour C# et .NET, similaire à npm pour les applications JavaScript. Les bibliothèques C# sont fournies dans des assemblys.
À mesure que vous apprenez C#, vous apprenez des concepts qui ne font pas partie de JavaScript. Certains de ces concepts peuvent vous être familiers si vous utilisez TypeScript :
- Système de type C# : C# est un langage fortement typé. Chaque variable a un type et ce type ne peut pas changer. Vous définissez
classoustructtypes. Vous pouvez établir des définitionsinterfacequi précisent le comportement implémenté par d’autres types. TypeScript inclut un grand nombre de ces concepts, mais étant donné que TypeScript est basé sur JavaScript, le système de type n’est pas aussi strict. - Correspondance de motifs : La correspondance de motifs permet de mettre en place des instructions et des expressions conditionnelles concises basées sur la forme de structures de données complexes. L’expression
isvérifie si une variable « est » un modèle. L’expressionswitchbasée sur des modèles fournit une syntaxe riche pour inspecter une variable et prendre des décisions en fonction de ses caractéristiques. - Interpolation de chaîne et littéraux de chaînes brutes : l’interpolation de chaîne vous permet d’insérer des expressions évaluées dans une chaîne, plutôt que d’utiliser des identificateurs de position. Les littéraux de chaînes brutes permettent de réduire la présence de séquences d’échappement dans le texte.
- Types Nullables et types non-nullables : C# prend en charge les types valeur Nullables et les types référence Nullables via l’ajout du suffixe
?à un type. Pour les types Nullables, le compilateur vous avertit si vous ne vérifiez pasnullavant de déréférencer l’expression. Pour les types non-nullables, le compilateur vous avertit si vous êtes sur le point d’affecter une valeur potentiellementnullà cette variable. Ces fonctionnalités peuvent minimiser le fait que votre application lance un System.NullReferenceException. La syntaxe peut être familière de l'utilisation de?par TypeScript pour les propriétés optionnelles. - LINQ : Language Integrated Query (LINQ) fournit une syntaxe commune pour interroger et transformer des données, quel que soit leur emplacement de stockage.
À mesure que vous apprenez d’autres différences deviennent apparentes, mais la plupart de ces différences sont plus petites dans l’étendue.
Certaines fonctionnalités et idiomes familiers de JavaScript et De TypeScript ne sont pas disponibles en C# :
- types dynamiques : C# utilise le type statique. Une déclaration de variable inclut le type et ce type ne peut pas changer. Il existe un type
dynamicen C# qui permet la liaison dynamique. - Héritage par prototype : l'héritage C# fait partie de la déclaration de type. Une déclaration C#
classindique n’importe quelle classe de base. En JavaScript, vous pouvez définir la__proto__propriété pour définir le type de base sur n’importe quelle instance. - Langage interprété : le code C# doit être compilé avant de l’exécuter. Le code JavaScript peut être exécuté directement dans le navigateur.
En outre, quelques fonctionnalités TypeScript supplémentaires ne sont pas disponibles en C# :
- Types d’union : C# ne prend pas en charge les types union. Toutefois, les propositions de conception sont en cours.
- Décorateurs : C# n’a pas de décorateurs. Certains décorateurs courants, tels que
@sealed, sont des mots clés réservés en C#. D’autres décorateurs courants peuvent avoir des attributs correspondants. Pour les autres décorateurs, vous pouvez créer vos propres attributs. - Syntaxe plus stricte : le compilateur C# analyse le code plus strictement que JavaScript.
Si vous créez une application web, vous devez envisager d’utiliser Blazor pour générer votre application. Blazor est un framework web full-stack conçu pour .NET et C#. Les composants Blazor peuvent s’exécuter sur le serveur, en tant qu’assemblys .NET ou sur le client à l’aide de WebAssembly. Blazor prend en charge l’interopérabilité avec vos bibliothèques JavaScript ou TypeScript préférées.