Présentation
TypeScript s'est bien développé. Lorsque notre entreprise développe de nouvelles fonctionnalités, nous prenons en compte la maintenabilité du programme et utilisons TypeScript pour écrire des programmes sur le navigateur. Nous utilisons TypeScript à partir de zéro, et même moi, je ne suis qu'à moitié capable de javascript. Cet article décrit le processus par lequel un programmeur C# apprend à connaître TypeScript.
Remarque : cet article est écrit sur la base de la version Typescript 0.8, et son utilisation est nouvelle et peut être obsolète. Pour des spécifications spécifiques, veuillez vous référer à http://www.typescriptlang.org
Espaces de noms et classes
En tant que développeur orienté objet, la première chose qui nous vient à l'esprit est la manière dont TypeScript définit les classes. Puisque les principes de notre serveur de projet (C#) sont exactement les mêmes que ceux du client (TypeScript), nous utilisons simplement C#. et TypeScript ici.
Classe de déclaration C#
using System; namespace Digiwin.Mars.VirtualUI.Engine { internal sealed class Decoder {} }
Classe de déclaration TypeScript
///<reference path="../Collections/ICollection.ts" /> module System.Erp.VirtualUI.Engine { export class Decoder {} }
Deuxièmement, pour référencer d'autres classes en C#, vous devez d'abord référencer la DLL dans le fichier de projet, puis utiliser un espace de noms (facultatif) dans l'en-tête du fichier. Cependant, dans TypeScript, un tel concept n'existe pas. le fichier est directement référencé.
En C#, les classes peuvent avoir de nombreux niveaux tels que public, interne, etc., ainsi que des modificateurs tels que scellé. Oubliez-les dans TypeScript. L'ajout d'exportation équivaut à public, abstract, type de valeur, etc. ne pas être disponible.
Mais il existe des interfaces.
Méthodes et commentaires
Méthode C#
/// <summary> /// 解码变更集 /// </summary> /// <param name="reader"> 一个变更集读取器对象 </param> public void DecodeChangeSet(ChangeRecordReader reader) { //解码上下文对象 var ctx = new DecodeContext();
/** * 传入变更集,将其解码到当前的对象容器。 * @param {System.Erp.VirtualUI.Engine.IChangeRecordReader} reader - 提供记录集。 */ public Decode(reader: IChangeRecordReader): void { //解码上下文对象 var ctx = new DecodeContext();
Les commentaires ordinaires utilisent également //, ce qui est exactement la même chose que javascript.
Dans la déclaration d'une méthode, TypeScript met le paramètre de retour à la fin. De manière correspondante, le type du paramètre est également placé après le nom. Si vous déclarez une variable, il en va de même
.
private _maxId: number; //Définir les champs sur la classevar item: VirtualObject; //Définit les variables dans la méthode.
En termes d'accessibilité des méthodes, public est pris en charge, afin qu'il puisse être rendu public ou non.
Paramètres et construction
En C#, nous définissons souvent plusieurs méthodes avec le même nom et utilisons différents types de paramètres pour les distinguer, mais cela n'est pas autorisé en JavaScript, donc TypeScript ne le permet pas.Pour les raisons ci-dessus, vous pouvez également comprendre qu'il ne peut y avoir qu'un seul constructeur. Voici un exemple de son constructeur :
constructor( objectContainer: VirtualObjectContainer, objectBinder:IObjectBinder ) { this._objectContainer = objectContainer; this._binder = objectBinder; }
Je n'ai pas trouvé le mot-clé override, même s'il est dit qu'il a été ajouté après la 0.8.
D'accord, pour plus de détails, vous devez étudier lentement le document de spécification. Ce document peut vous aider à démarrer et à apprécier son utilisation.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.