Heim > Web-Frontend > js-Tutorial > C#-Programmierer verstehen den Prozess der TypeScript_Javascript-Fähigkeiten

C#-Programmierer verstehen den Prozess der TypeScript_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:54:04
Original
1433 Leute haben es durchsucht

Einführung

TypeScript entwickelt sich gut. Wenn unser Unternehmen neue Funktionen entwickelt, achten wir auf die Wartbarkeit des Programms und verwenden TypeScript, um Programme im Browser zu schreiben, und selbst ich kann Javascript nur halbwegs. Dieser Artikel beschreibt den Prozess eines C#-Programmierers, sich mit TypeScript vertraut zu machen.

Hinweis: Dieser Artikel basiert auf der Typescript 0.8-Version und ist neu in der Verwendung. Spezifische Spezifikationen finden Sie unter http://www.typescriptlang.org

Namespaces und Klassen

Als objektorientierter Entwickler fällt mir als Erstes ein, wie TypeScript Klassen definiert. Da die Prinzipien unseres Projektservers (C#) genau die gleichen sind wie die des Clients (TypeScript), verwenden wir einfach C#. und TypeScript hier.

C#-Deklarationsklasse

using System;
namespace Digiwin.Mars.VirtualUI.Engine {
internal sealed class Decoder {}
}

Nach dem Login kopieren

TypeScript-Deklarationsklasse

///<reference path="../Collections/ICollection.ts" />
module System.Erp.VirtualUI.Engine {
export class Decoder {}
}

Nach dem Login kopieren

Um es einfach auszudrücken: Es gibt Konzepte, die Namespaces ähneln, und das andere heißt Modul. Das ist kein Unsinn.

Zweitens müssen Sie zum Verweisen auf andere Klassen in C# zunächst auf die DLL in der Projektdatei verweisen und dann einen Namespace (optional) im Dateiheader verwenden. In TypeScript gibt es jedoch kein solches Konzept, und a Die Datei wird direkt referenziert.

In C# können Klassen viele Ebenen haben, z. B. öffentlich, intern usw., sowie Modifikatoren wie „versiegelt“. Das Hinzufügen von „export“ entspricht „öffentlich“, „abstrakt“, „Werttyp“ usw. Dies scheint nicht verfügbar sein.

Aber es gibt Schnittstellen.

Methoden und Kommentare

C#-Methode

    /// <summary>
    ///  解码变更集
    /// </summary>
    /// <param name="reader"> 一个变更集读取器对象 </param>
    public void DecodeChangeSet(ChangeRecordReader reader) {
      //解码上下文对象
      var ctx = new DecodeContext();

Nach dem Login kopieren

TypeScript-Deklarationsmethode

    /**
     * 传入变更集,将其解码到当前的对象容器。
     * @param {System.Erp.VirtualUI.Engine.IChangeRecordReader} reader - 提供记录集。
     */

    public Decode(reader: IChangeRecordReader): void {
      //解码上下文对象
      var ctx = new DecodeContext();

Nach dem Login kopieren

Wir sehen zunächst, dass im Gegensatz zu anderen JsDoc-Spezifikationen auch die dokumentspezifischen XML-Kommentare von c# unterstützt werden.

Gewöhnliche Kommentare verwenden auch //, was genau das Gleiche wie Javascript ist.

Bei der Deklaration einer Methode stellt TypeScript den Rückgabeparameter am Ende ein. Dementsprechend wird auch der Typ des Parameters nach dem Namen platziert. Wenn Sie eine Variable deklarieren, gilt dasselbe.

private _maxId: number; //Felder für die Klasse definieren

var item: VirtualObject; //Variablen in der Methode definieren.

Im Hinblick auf die Zugänglichkeit der Methode wird „public“ unterstützt, sodass sie öffentlich gemacht werden kann oder nicht.

Parameter und Konstruktion

In C# definieren wir häufig mehrere Methoden mit demselben Namen und verwenden unterschiedliche Parametertypen, um sie zu unterscheiden. Dies ist jedoch in JavaScript nicht zulässig, sodass TypeScript dies nicht zulässt.

Aus den oben genannten Gründen können Sie auch verstehen, dass es nur einen Konstruktor geben kann. Das Folgende ist ein Beispiel seines Konstruktors:

    constructor(

      objectContainer: VirtualObjectContainer,

      objectBinder:IObjectBinder

    ) {

      this._objectContainer = objectContainer;

      this._binder = objectBinder;

    }

Nach dem Login kopieren

Basierend auf dem Konzept von JavaScript gibt es kein Schlüsselwort wie „ref out in“, sondern benannte Zugriffsparameter und optionale Parameter.

Ich habe das Schlüsselwort „override“ nicht gefunden, obwohl es angeblich nach 0.8 hinzugefügt wurde.

Okay, für weitere Details müssen Sie das Spezifikationsdokument langsam studieren. Dieses Dokument kann Ihnen den Einstieg und die Freude an der Verwendung erleichtern.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage