Heim > Web-Frontend > js-Tutorial > Hauptteil

Geben Sie einige Tipps zu TypeScript

零下一度
Freigeben: 2018-05-17 14:16:21
Original
2604 Leute haben es durchsucht

TypeScript (im Folgenden als ts bezeichnet) in einem C++-Projekt kompilieren

Bearbeiten Sie die Eigenschaften der ts-Datei und wählen Sie „Custom Production Tool“ als Elementtyp.

Geben Sie den Speicherort und die Kompilierungsparameter von tsc in der Befehlszeile ein. Meiner lautet „C:Program Files (x86)Microsoft SDKsTypeScript2.2tsc“ %(Identity) --outFile %(RelativeDir)/%(FileName) .js -tes5. UNC (Universal Naming Convention) mit Leerzeichen muss in doppelte Anführungszeichen gesetzt werden. %(Identität) ist der Speicherort der kompilierten Datei.

--outFile ist der Ausgabeparameter, gefolgt vom Ausgabeort.

  -t(--target) ist der Zieltyp, ich verwende ES5, es kann auch "ES3" (Standard), "ES5", "ES6"/"ES2015" sein , "ES2016", "ES2017" oder "ESNext"。

  说明写%(Identity)就可以,这个随意。

Die Ausgabe ist $(FileName).js. Dies sollte verwendet werden, um die Notwendigkeit der Kompilierung zu bestimmen.

ps: Dies ist die Methode, die ich recherchiert habe. Ich glaube, es gibt eine Standardmethode. Der Beamte stellte nicht vor, wie man in einem C++-Projekt kompiliert.

Zitieren der Anweisung von jquery in ts

jquery ist nicht in ts geschrieben, daher kann die ts-Datei nicht auf git gefunden werden. Glücklicherweise bietet vs leistungsstarke Unterstützung für jquery Wenn Sie eine neue HTML-Datei eines beliebigen Projekttyps erstellen und eine JS-Datei einer beliebigen Jquery-Version einbinden, unterstützt Ihr Smart Prompt automatisch $. Positionieren Sie als Nächstes die Maus links oder rechts von $ und drücken Sie F12, um die Definition anzuzeigen. Anschließend wird automatisch zur Datei index.d.ts gewechselt. Klicken Sie mit der rechten Maustaste auf die Beschriftung und wählen Sie „Verzeichnis öffnen“, um die Datei zu suchen und zu kopieren in Ihr eigenes Projektverzeichnis.

Verwenden Sie die Syntax mit dreifachem Schrägstrich, um auf die aktuelle TS-Datei zu verweisen ///

Die .d.ts-Datei ist eine Deklarationsdatei , und Es gibt keinen logischen Code, nur Struktur.

So generieren Sie eine Deklarationsdatei für Ihre eigene TS-Datei

Wie zuvor kann der TSC-Compiler eine Deklarationsdatei generieren, nur der Parameter -d/-- Deklaration und TS-Dateien sind erforderlich.

Zum Beispiel: tsc -d main.ts

Ts-Dateien über die Befehlszeile kompilieren?

Ja, solange Ihnen der Ärger nichts ausmacht. Die Entwickler-Eingabeaufforderung für VS 2017 von VS kann den Befehl tsc direkt verwenden. Sie können es an den Startbildschirm anheften, um die Starteffizienz zu verbessern.

So lösen Sie das Problem, dass Sie die Deklaration nicht erhalten

  declare var swal: (arg: any) => any;
Nach dem Login kopieren

Fügen Sie hinzu, dass Sie eine Funktion wie swal haben, die keine bereitstellt ts-Deklaration, sodass Sie kostenlos verwendet werden können. Natürlich handelt es sich dabei um einen Parametermissbrauch.

Das HTMLElement.remove-Mitglied in ts existiert nicht. Sie können nur das RemoveChild seines übergeordneten Objekts verwenden, was nicht sehr praktisch ist.

 dom:HTMLElement;

  (<any>dom).remove();// 就这样勉强的转为any再调用remove吧。
Nach dem Login kopieren

Es ist nicht erforderlich, für jedes Objekt eine Klasse zu erstellen.

Die Klasse von ts unterstützt die interne Deklaration von Klassen nicht. Daher ist es nicht angebracht, den Membertyp außerhalb der Klasse zu deklarieren.

  class foo{
    member:{mem1:number, mem2?:string};// 加问号表示可有可无  }
Nach dem Login kopieren

Auf diese Weise ähnelt das Mitglied einer inneren Klasse.

Ereignisabonnement und dieser Parameter

  class bar{
    sub(){
      dom.onclick=function(){this};
    }
  }
Nach dem Login kopieren

Auf diese Weise ist dies in der Funktion function das Dom-Objekt.

 dom.onclick=()=>{this};

 Dies stellt eine Instanz der Klassenleiste dar.

Dann möchte ich das Dom-Objekt und die Bar-Instanz haben?

Derzeit kann ich nur Verschlüsse verwenden:

  class bar{
    click(node:HTMLElement, ev:MouseEvent){
      this...
    }
    dom.onclick = (ev:MouseEvent)=>this.click(dom,ev);
  }
Nach dem Login kopieren

Das ist immer noch das, was Sie erwartet haben Mitglied der Rechtsanwaltskammer.

Verwenden Sie readonly nicht für schreibgeschützte Eigenschaften

Wenn Sie es ändern möchten, ist readonly für den internen Zugriff innerhalb der Klasse nicht geeignet

Daher sollten Sie Object.defineProperty,ts verwenden. Es gibt bequemere Set/Get-Operationsattribute.

  class baz{
    _attr:[];
    get attr(){
      return _attr;
    }
  }
Nach dem Login kopieren

Auf diese Weise kann attr nur gelesen werden. Um die Attributfunktion nutzen zu können, müssen Sie die Zieloption (-t/--target) des ts-Compilers auf es5 oder höher setzen.

Dieser Artikel wird weiterhin aktualisiert, solange er sich auf die Typoskript-Technologie bezieht. Bitte folgen Sie mir/favorisieren Sie diesen Artikel.

Übrigens: cnblogs unterstützt keine TS-Code-Färbung und verwendet JS-Code-Färbung.

Das obige ist der detaillierte Inhalt vonGeben Sie einige Tipps zu TypeScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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