Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
C#, TypeScript e JavaScript são todos membros da família de linguagens C. As semelhanças entre as linguagens ajudam você a se tornar produtivo rapidamente em C#.
-
Sintaxe semelhante: JavaScript, TypeScript e C# estão na família C de linguagens. Essa semelhança significa que você já pode ler e entender C#. Existem algumas diferenças, mas a maior parte da sintaxe é a mesma que JavaScript e C. Os suportes encaracolados e ponto-e-vírgula são familiares. As instruções de controle como
if,else,switchsão as mesmas. As instruções de looping defor,while, edo...whilesão as mesmas. As mesmas palavras-chave paraclasseinterfaceestão em C# e TypeScript. Os modificadores de acesso em TypeScript e C#, depublicparaprivate, são os mesmos. -
O
=>token: Todas as linguagens suportam definições de funções simplificadas. Em C#, elas são chamadas de expressões lambda, em JavaScript, elas são normalmente chamadas de funções de seta. - Hierarquias de funções: Todas as três linguagens suportam funções locais, que são funções definidas em outras funções.
-
Async / Await: Todas as três linguagens compartilham o mesmo
asynceawaitpalavras-chave para programação assíncrona. - Coleta de lixo: Todos os três idiomas dependem de um coletor de lixo para gerenciamento automático de memória.
-
Modelo de evento: a sintaxe do
eventC# é semelhante ao modelo do JavaScript para eventos DOM (document object model). - Gerenciador de pacotes: o NuGet é o gerenciador de pacotes mais comum para C# e .NET, semelhante ao npm para aplicativos JavaScript. As bibliotecas C# são entregues em assemblies.
Ao aprender C#, você aprende conceitos que não fazem parte do JavaScript. Alguns desses conceitos podem ser familiares para você se você usar o TypeScript:
-
Sistema de Tipos C#: C# é uma linguagem com tipagem forte. Cada variável tem um tipo, e esse tipo não pode mudar. Você define tipos
classoustruct. Você pode definirinterfacedefinições que definem o comportamento implementado por outros tipos. O TypeScript inclui muitos desses conceitos, mas como o TypeScript é construído em JavaScript, o sistema de tipos não é tão rigoroso. -
Correspondência de padrões: a correspondência de padrões permite instruções e expressões condicionais concisas com base na forma de estruturas de dados complexas. A
isexpressão verifica se uma variável "é" algum padrão. A expressão baseada em padrões fornece uma sintaxe rica para inspecionar uma variável e tomar decisões com base em suas características. - Interpolação de cadeia de caracteres e literais de cadeia de caracteres brutos: a interpolação de cadeia de caracteres permite inserir expressões avaliadas em uma cadeia de caracteres, em vez de usar identificadores posicionais. Os literais de cadeia de caracteres brutos fornecem uma maneira de minimizar as sequências de escape no texto.
-
Tipos anuláveis e não anuláveis: C# suporta tipos de valor anuláveis e tipos de referência anuláveis anexando o sufixo
?a um tipo. Para tipos anuláveis, o compilador avisa se você não verificarnullantes de desreferenciar a expressão. Para tipos não anuláveis, o compilador avisa se você pode estar atribuindo umnullvalor a essa variável. Esses recursos podem minimizar a ocorrência de um System.NullReferenceException. A sintaxe pode ser familiar devido ao uso do TypeScript de?para propriedades opcionais. - LINQ: Language Integrated query (LINQ) fornece uma sintaxe comum para consultar e transformar dados, independentemente de seu armazenamento.
À medida que você aprende mais, outras diferenças se tornam aparentes, mas muitas dessas diferenças são menores em escopo.
Alguns recursos e expressões idiomáticas familiares do JavaScript e do TypeScript não estão disponíveis em C#:
-
tipos dinâmicos: C# usa digitação estática. Uma declaração de variável inclui o tipo, e esse tipo não pode ser alterado. Existe um tipo
dynamicem C# que oferece vinculação em tempo de execução. -
Herança prototípica: a herança C# faz parte da declaração de tipo. Uma declaração C#
classindica qualquer classe base. Em JavaScript, você pode definir a__proto__propriedade para definir o tipo base em qualquer instância. - Linguagem interpretada: o código C# deve ser compilado antes de ser executado. O código JavaScript pode ser executado diretamente no navegador.
Além disso, mais alguns recursos do TypeScript não estão disponíveis em C#:
- Tipos de união: C# não suporta tipos de união. No entanto, estão em curso propostas de conceção.
-
Decoradores: C# não tem decoradores. Alguns decoradores comuns, como
@sealedsão palavras-chave reservadas em C#. Outros decoradores comuns podem ter atributos correspondentes. Para outros decoradores, você pode criar seus próprios atributos. - Sintaxe mais tolerante: O compilador C# analisa o código mais estritamente do que o JavaScript exige.
Se você estiver criando um aplicativo Web, considere usar Blazor para criar seu aplicativo. Blazor é um framework web full-stack criado para .NET e C#. Os componentes Blazor podem ser executados no servidor, como assemblies .NET, ou no cliente usando WebAssembly. Blazor suporta interoperabilidade com suas bibliotecas favoritas JavaScript ou TypeScript.