TypeScript Tutorial: Was ist eine Schnittstelle, ein Enumerationselement und ein Array mit Beispiel

Was ist TypeScript?

TypeScript ist eine Obermenge von JavaSkript. TypeScript ist eine rein objektorientierte Programmiersprache, die Klassen, Schnittstellen usw. unterstรผtzt. Es ist eine Open-Source-Sprache, die von Microsoft das den Code statisch kompiliert zu JavaSkript. Es kann problemlos in einem Browser oder Nodejs ausgefรผhrt werden.

Alle neuesten Features fรผr ECMAScript werden unterstรผtzt in TypeScript und darรผber hinaus TypeScript verfรผgt รผber eigene objektorientierte Funktionen wie Schnittstellen, Umgebungsdeklaration, Klassenvererbung usw., die bei der Entwicklung einer groรŸen Anwendung hilfreich sind, was sonst schwierig wรคre JavaSkript.

Herunterladen und Installieren TypeScript

Hier ist die Schritt-fรผr-Schritt-Anleitung zum Herunterladen und Installieren TypeScript:

Schritt 1) โ€‹โ€‹Laden Sie Nodejs herunter und installieren Sie es

Gehen Sie zur offiziellen Website von nodejs: https://nodejs.org/en/download/ und laden Sie nodejs entsprechend Ihrem Betriebssystem herunter und installieren Sie es. Die detaillierte Anleitung zum Herunterladen von nodejs finden Sie hier: https://www.guru99.com/download-install-node-js.html

Schritt 2) รœberprรผfen Sie die Nodejs- und NPM-Version

Um zu รผberprรผfen, ob nodejs und npm installiert sind, รผberprรผfen Sie einfach die Version in Ihrer Eingabeaufforderung.

D:\typeproject>node --version
V10.15.1

D:\typeproject>npm --version
6.4.1

Sie haben also NodeJS v10 und NPM 6 installiert.

Schritt 3) TypeScript Installation

Erstellen Sie Ihr Projektverzeichnis typeproject/ und fรผhren Sie npm init aus, wie im folgenden Befehl gezeigt:

npm init

Schritt 4) Starten Sie die Installation

Jetzt erstellen wir das Paket .json, das die Abhรคngigkeiten fรผr unser Projekt speichert.

Nach Abschluss der Installation TypeScript wie folgt:

npm -g install typescript

Der obige Befehl รผbernimmt die Installation TypeScript. Durch Hinzufรผgen von โ€ž-gโ€œ zu npm install wird installiert TypeScript global. Der Vorteil der Verwendung von -g ist, dass Sie verwenden kรถnnen TypeScript tsc Befehl aus jedem Verzeichnis, da es global installiert ist. Falls Sie es nicht installieren mรถchten TypeScript Verwenden Sie global den folgenden Befehl:

npm --save install typescript

Erstellen Sie den Ordner src/ in Ihrem Projektverzeichnis und erstellen Sie im Ordner src/ TypeScript Datei test.ts und schreiben Sie Ihren Code.

Beispiel: test.ts

function add(x:number, y:number) {
	return x+y;
}

let sum = add(5,10);
console.log(sum);

Kompilieren TypeScript Code zu Javascript

Um den obigen Code zu kompilieren, verwenden Sie den folgenden Befehl:

If TypeScript global installiert ist, verwenden Sie den folgenden Befehl:

tsc test.ts

If TypeScript lokal in Ihrem Projekt installiert ist, mรผssen Sie den Pfad von verwenden TypeScript von node_modules wie gezeigt:

node_modules/typescript/bin/tsc test.ts

Der obige Befehl erstellt eine test.js-Datei und kompiliert den Code in Javascript.

Beispiel: test.js

function add(x, y) {
    return x + y;
}
var sum = add(5, 10);
console.log(sum);

Ausfรผhren Javascript mit Nodejs

In dieser TypeScript Tutorial: Wir fรผhren test.js in nodejs wie folgt aus:

D:\typeproject\src>node test.js
15

Der Wert consoled wird bei der Ausfรผhrung von test.js angezeigt

Ausfรผhren JavaSkript im Browser

Ejemplo:

<html>
<head></head>
<body>
<script type="text/javascript" src="test.js"></script>
</body>
</html>

Ausfรผhren Javascript mit Nodejs

Kompilieren TypeScript Code zu Javascript mit EcmaScript-Version

TypeScript unterstรผtzt alle verรถffentlichten Ecmascript-Funktionen und Entwickler kรถnnen diese beim Codieren verwenden. Allerdings werden nicht alle neuen Funktionen von รคlteren Browsern unterstรผtzt, weshalb Sie JavaScript in eine รคltere Version von Ecmascript kompilieren mรผssen. TypeScript bietet Compileroptionen, die dies ermรถglichen.

Beispiel: test.ts

var addnumbers = (a, b) => {
    return a+b;
}

addnumbers(10, 20);

Um die ES-Version Ihrer Wahl zu kompilieren, kรถnnen Sie die Option โ€žtargetโ€œ oder โ€žtโ€œ in Ihrem Befehl wie folgt verwenden:

tsc --target ES6  test.ts

OR

tsc -t ES6 test.ts

StandardmรครŸig ist das Ziel ES3. Falls Sie es รคndern mรถchten, kรถnnen Sie den obigen Befehl verwenden.

Derzeit verwenden wir ES6 in diesem TypeScript Tutorial als Ziel:

tsc --target ES6  test.ts

test.ts zu test.js

var addnumbers = (a, b) => {
    return a+b;
}

addnumbers(10, 20);

Der Code bleibt unverรคndert, da die von Ihnen verwendete Pfeilfunktion eine ES6-Funktion ist und beim Kompilieren in ES6 nicht geรคndert wird.

StandardmรครŸig ist das Ziel ES3. Ohne Ziel erhalten Sie test.js als:

var addnumbers = function (a, b) {
    return a + b;
};
addnumbers(10, 20);

Hier wird der dicke Pfeil in eine normale anonyme Funktion geรคndert.

Variablen in TypeScript

Variablen werden zum Speichern von Werten verwendet und der Wert kann eine Zeichenfolge, eine Zahl, ein Boolean-Wert oder ein Ausdruck sein. Wenn es um Variablen in TypeScript, sie รคhneln JavaSkript. Lernen wir also, Variablen zu deklarieren und ihnen Werte zuzuweisen in TypeScript.

Variablen kรถnnen nicht ohne Definition im Code verwendet werden. Um eine Variable zu deklarieren, kรถnnen Sie verwenden

jung Stichwort,

lassen Stichwort

const Stichwort

Arbeiten mit Variablen in TypeScript ist รคhnlich wie Javascript und wird von Javascript-Kennern sehr einfach gefunden. Nur Variablen wie lassen , const werden im Vergleich zu nicht oft verwendet jung.

Variablen mit var deklarieren

Syntax:

var firstname = "Roy";

Werfen wir einen Blick auf einige TypeScript Beispiele zum Verstรคndnis der Funktionsweise des Schlรผsselworts var und des Umfangs von Variablen, die mit deklariert werden jung Stichwort.

Beispiel 1:

var  k = 1; // variable k will have a global scope

function test() {
    var c = 1; // variable c is local variable and will be accessible inside function test, it will not be available outside the function.
    return k++;
}

test(); // output as  1
test(); // output as 2
alert(c); // will throw error , Uncaught ReferenceError: c is not defined

Beispiel 2:

var t = 0; // variable t is declared in global scope.
function test() {    
    var t = 10; //variable t is again redeclared inside function with value 10, so here t is local to the function and changes done to it will remain inside the function.
    return t;
}
test(); // will return 10.
console.log(t); // will console 0.

Beispiel 3:

var i = 0;
function test() {
    if (i>0) {
      var t = 1;
    }
    return t;
}

test(); // the value returned will be undefined. The if-block has the variable which gets executed when I> 0. Over here the if-block is not expected but you are still having a reference to the variable t, and it returns undefined, this is because var defined variables once defined inside a function will have reference to it inside the function.  
i++; // here value of i is incremented.
test(); // since i >0 the if block is executed and value returned is 1.

Variablen mit let deklarieren

Die TypeScript Die Syntax fรผr let ist wie folgt:

Syntax:

let name="Roy";

Die Arbeit von lassen Variable ist fast identisch mit jung, aber mit einem kleinen Unterschied und wird das gleiche verstehen mit einem TypeScript Beispiel.

Ejemplo:

let i = 1;
function test() {
    if (i>0) {
	  let t = 1;
    }
    return t;
}

test(); // throws an error : Uncaught ReferenceError: t is not defined.

Oben TypeScript Beispiel wirft einen Fehler, aber das gleiche hรคtte gut funktioniert, wenn es mit dem jung Stichwort. Variablen verwenden lassen sind innerhalb des deklarierten Blockbereichs verfรผgbar, beispielsweise ist die Variable t nur innerhalb des if-Blocks und nicht fรผr die gesamte Funktion verfรผgbar.

Auch wenn Sie eine Variable innerhalb einer Funktion oder einer For-Schleife, While-Schleife deklarieren, TypeScript switch-Block, steht Ihnen nur innerhalb dieses Blocks zur Verfรผgung und es gibt keinen Verweis darauf auรŸerhalb des Blocks und es wird ein Fehler ausgegeben, wenn die Variable auรŸerhalb des Blocks verwendet wird. Dies ist der Hauptunterschied zwischen mit var- und let-Schlรผsselwรถrtern deklarierten Variablen.

Variablen mit const deklarieren

Const bedeutet konstante Variablen. Sie รคhneln Let-Variablen, mit dem einzigen Unterschied, dass ein einmal zugewiesener Wert nicht mehr geรคndert werden kann.

Syntax:

const name;

Ejemplo:

const age = "25"; 
age="30"; // will throw an error : Uncaught TypeError: Assignment to constant variable.

Daher kรถnnen Benutzer const-Variablen nur dann verwenden, wenn sie wissen, dass sie die ihr zugewiesenen Werte nicht รคndern mรผssen.

Typen in TypeScript

TypeScript ist eine stark typisierte Sprache, JavaScript hingegen nicht. Eine Variable, deren Wert als Zeichenfolge definiert ist, kann problemlos in eine Zahl geรคndert werden in JavascriptDasselbe wird nicht toleriert in TypeScript. in TypeScript, der Typ einer Variablen wird nur zu Beginn definiert und muss wรคhrend der gesamten Ausfรผhrung derselbe Typ bleiben. Jede ร„nderung daran fรผhrt zu einem Kompilierfehler wรคhrend der Kompilierung in JavaScript.

Folgende Typen sind mรถglich:

  • Nummer
  • Schnur
  • Boolean
  • Jedes
  • Leere

Nummer

Akzeptiert nur Ganzzahlen, Gleitkommazahlen, Brรผche usw.

Syntax:

let a :number = 10;
let marks :number = 150;
let price :number = 10.2;

Hier sind einige wichtige Methoden, die fรผr Zahlentypen verwendet werden kรถnnen:

toFixed() โ€“ Es wandelt die Zahl in eine Zeichenfolge um und behรคlt die der Methode zugewiesenen Dezimalstellen bei.

toString () โ€“ Diese Methode wandelt eine Zahl in eine Zeichenfolge um.

Wert von() โ€“ Diese Methode gibt den Grundwert der Zahl zurรผck.

toPrecision() โ€“ Diese Methode formatiert die Zahl auf eine angegebene Lรคnge.

Beispiel: mit allen String-Methoden

let _num :number = 10.345;
_num.toFixed(2); // "10.35"
_num.valueOf(); // 10.345
_num.toString(); // "10.345"
_num.toPrecision(2); //"10"

Schnur

String: nur Stringwerte

Syntax:

let str :string = "hello world";

Hier sind einige wichtige Methoden, die fรผr String-Typen verwendet werden kรถnnen:

  • gespalten() โ€“ diese Methode teilt die Zeichenfolge in ein Array auf.
  • charat() โ€“ Diese Methode gibt das erste Zeichen fรผr den angegebenen Index zurรผck.
  • Index von() โ€“ Diese Methode gibt die Position des ersten Vorkommens fรผr den ihr zugewiesenen Wert an.
  • Ersetzen () โ€“ Diese Methode benรถtigt zwei Zeichenfolgen, zunรคchst den Wert, der in der Zeichenfolge gesucht werden soll, und falls vorhanden, wird dieser durch die zweite ersetzt und eine neue Zeichenfolge zurรผckgegeben.
  • Trim () โ€“ Diese Methode entfernt Leerzeichen von beiden Seiten der Zeichenfolge.
  • substr() โ€“ Diese Methode gibt einen Teil der Zeichenfolge zurรผck, der von der als Start und Ende angegebenen Position abhรคngt.
  • Teilzeichenfolge() โ€“ Diese Methode gibt einen Teil der Zeichenfolge zurรผck, der von der als Start und Ende angegebenen Position abhรคngt. Das Zeichen an der Endposition wird ausgeschlossen.
  • zuGroรŸbuchstaben() โ€“ konvertiert die Zeichenfolge in GroรŸbuchstaben
  • toLowerCase() โ€“ wandelt die Zeichenfolge in Kleinbuchstaben um.

Ejemplo:

let _str:string = "Typescript";

_str.charAt(1); // y
_str.split(""); //["T", "y", "p", "e", "s", "c", "r", "i", "p", "t"]
_str.indexOf("s"); //4 , gives -1 is the value does not exist in the string.
_str.replace("Type", "Coffee"); //"Coffeescript"
_str.trim(); //"Typescript"
_str.substr(4, _str.length); //"script"
_str.substring(4, 10); //"script"
_str.toUpperCase();//"TYPESCRIPT"
_str.toLowerCase();//"typescript"

Boolean

Akzeptiert logische Werte wie wahr, falsch, 0 und 1.

Syntax:

let bflag :boolean = 1;
let status :boolean = true;

Jedes

Syntax:

let a :any = 123
a = "hello world"; // changing type will not give any error.

Mit deklarierte Variablen fรผr Der Typ kann die Variable als Zeichenfolge, Zahl, Array, Boolescher Wert oder ungรผltig annehmen. TypeScript wird keinen Kompilierfehler werfen; dies ist รคhnlich wie bei den in JavaSkript. Verwenden Sie Variablen eines beliebigen Typs nur, wenn Sie sich รผber den Werttyp, der dieser Variablen zugeordnet wird, nicht sicher sind.

Leere

Der Void-Typ wird meist als Rรผckgabetyp fรผr eine Funktion verwendet, die nichts zurรผckzugeben hat.

Syntax:

function testfunc():void{
 //code here
}

TypeScript Feld

An Feld in TypeScript ist ein Datentyp, in dem Sie mehrere Werte speichern kรถnnen. Lernen Sie, wie Sie Werte fรผr Array-Operationen deklarieren und zuweisen in TypeScript.

Da TypeScript ist eine stark typisierte Sprache. Sie mรผssen angeben, was der Datentyp der Werte in einem Array sein soll. Andernfalls wird es als vom Typ โ€žanyโ€œ betrachtet.

Deklarieren und initialisieren Sie ein Array

Syntax:

let nameofthearray : Array<typehere>

Beispiel

let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values.

let years: Array<number> = [2015, 2016, 2017, 2018, 2019]; //array will all numbers

let month_year: Array<string | number> = ["Jan", 2015, "Feb", 2016]; //array with string and numbers mixed.

let alltypes: Array<any> = [true, false, "Harry", 2000, { "a": "50", "b": "20" }]; //array of all types boolean, string , number , object etc.

Verschiedene Mรถglichkeiten, auf Elemente aus einem Array zuzugreifen

Um die Elemente aus einem Array abzurufen, beginnen die Werte vom Index 0 bis zur Lรคnge des Arrays.

Ejemplo:

let years: Array<number> = [ 2016, 2017, 2018, 2019]; //array will all numbers			
years[0]; // output will be 2016			
years[1]; // output will be 2017			
years[2]; // output will be 2018			
years[3]; // output will be 2019

Sie kรถnnen die Elemente aus einem Array auch abrufen mit TypeScript fรผr Schleife wie unten dargestellt:

Die Verwendung von TypeScript for-Schleife

let years: Array<number> = [ 2016, 2017, 2018, 2019]; 
for (let i=0;i<=years.length; i++) {
     console.log(years[i]);
}
Output:
2016
2017
2018
2019

For-In-Schleife verwenden

let years: Array<number> = [ 2016, 2017, 2018, 2019]; 
for (let i in years) {
     console.log(years[i])
}

Output:
2016
2017
2018
2019

Verwendung einer for-of-Schleife

let years: Array<number> = [ 2016, 2017, 2018, 2019]; 
for (let  i of years) {
     console.log(i)
}
Output:
2016
2017
2018
2019

Verwendung der foreach-Schleife

let years: Array<number> = [ 2016, 2017, 2018, 2019]; 
years.forEach(function(yrs, i) {
  console.log(yrs);
});
Output:
2016
2017
2018
2019

TypeScript Array-Methoden

TypeScript Array-Objekte haben viele Eigenschaften und Methoden, die Entwicklern helfen, Arrays einfach und effizient zu handhaben. Sie kรถnnen den Wert einer Eigenschaft abrufen, indem Sie arrayname.property angeben, und die Ausgabe einer Methode, indem Sie arrayname.method() angeben.

Lรคngeneigenschaft

=> Wenn Sie die Anzahl der Elemente in einem Array wissen mรถchten, kรถnnen Sie die Lรคngeneigenschaft verwenden.

Reverse-Methode

=> Sie kรถnnen die Reihenfolge der Elemente in einem Array mithilfe einer Umkehrmethode umkehren.

Sortiermethode

=> Sie kรถnnen die Elemente in einem Array mithilfe der Sortiermethode sortieren.

Pop-Methode

=> Sie kรถnnen das letzte Element eines Arrays mithilfe einer Pop-Methode entfernen.

Shift Methode

=> Sie kรถnnen das erste Element eines Arrays mit der Shift-Methode entfernen.

Push-Methode

=> Sie kรถnnen einen Wert als letztes Element des Arrays hinzufรผgen.

Concat-Methode

=> Sie kรถnnen zwei Arrays zu einem Array-Element zusammenfรผgen.

Beispiel fรผr die Lรคngeneigenschaft

let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values.

console.log(months.length);  // 12

Beispiel fรผr die umgekehrte Methode

let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values.

console.log(months.reverse());  //  ["Dec", "Nov", "Oct", "Sept", "Aug", "July", "June", "May", "April", "March", "Feb", "Jan"]

Beispiel fรผr Sortiermethode

let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values.

console.log(months.sort()); // ["April", "Aug", "Dec", "Feb", "Jan", "July", "June", "March", "May", "Nov", "Oct", "Sept"]

Beispiel fรผr die Pop-Methode

let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values.				

console.log(months.pop()); //Dec

Beispiel fรผr die Shift-Methode

let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values.			

console.log(months.shift()); // Jan

Beispiel fรผr Push-Methode

let years: Array<number> = [2015, 2016, 2017, 2018, 2019]; //array will all numbers			
console.log(years.push(2020)); 			
years.forEach(function(yrs, i) {			
  console.log(yrs); // 2015 , 2016,2017, 2018, 2019,2020				
});

Beispiel fรผr die Concat-Methode

let array1: Array<number> = [10, 20, 30]; 			
let array2: Array<number> = [100, 200, 300];			
console.log(array1.concat(array2)); //[10, 20, 30, 100, 200, 300]

Klasse in TypeScript

TypeScript ist eine Obermenge von JavaScript, also alles was mรถglich ist in JavaScript ist auch mรถglich in TypeScript. Klasse ist ein neues Feature, das ab ES6 hinzugefรผgt wurde, also frรผher in JavaSkript Die Klassentypfunktionalitรคt wurde mithilfe einer Funktion mit Prototypfunktionalitรคt ausprobiert, um Code wiederzuverwenden. Mit Klassen kรถnnen Sie unseren Code fast so gestalten, wie er in Sprachen wie Java, C#, Python usw. verwendet werden kann, wo der Code wiederverwendet werden kann. Mit der Funktion der Klasse in TypeScript/JavaSkript, es macht die Sprache sehr leistungsfรคhig.

Definieren einer Klasse in TypeScript

Hier ist eine grundlegende Klassensyntax in TypeScript:

class nameofclass {
     //define your properties here

    constructor() {
     // initialize your properties here
    }
 
   //define methods for class
}

Beispiel: Ein funktionierendes Beispiel fรผr Class

class Students {
    age : number;
    name : string;
    roll_no : number;
    
    constructor(age: number, name:string, roll_no: number) {
        this.age = age;
        this.name = name;
        this.roll_no = roll_no;
    }

    getRollNo(): number {
        return this.roll_no;
    }

    getName() : string {
        return this.name;
    }

    getAge() : number {
        return this.age;
    }
}

Im obigen Beispiel haben Sie eine Klasse namens Students. Es verfรผgt รผber die Eigenschaften โ€žAlterโ€œ, โ€žNameโ€œ und โ€žRollennummerโ€œ.

Konstrukteur in einem TypeScript Klasse

Das Beispiel der Klasse Students, das wir oben definiert haben, hat einen Konstruktor wie unten gezeigt:

constructor(age: number, name:string, roll_no: number) {
        this.age = age;
        this.name = name;
        this.roll_no = roll_no;
    }

Die Konstruktormethode verfรผgt รผber die Parameter โ€žAlterโ€œ, โ€žNameโ€œ und โ€žRollennummerโ€œ. Der Konstruktor kรผmmert sich beim Aufruf der Klasse um die Initialisierung der Eigenschaften. Der Zugriff auf die Eigenschaften erfolgt รผber fehlen uns die Worte. Stichwort. Beispiel: this.age fรผr den Zugriff auf die Alterseigenschaft, this.roll_no fรผr den Zugriff auf roll_no usw. Sie kรถnnen auch einen Standardkonstruktor verwenden, wie unten gezeigt:

constructor () {}

Methoden innerhalb eines TypeScript Klasse

Im Beispiel der Klasse โ€žStudentsโ€œ sind Methoden wie beispielsweise getRollNo(), getName(), getAge() definiert, die verwendet werden, um Details zu den Eigenschaften roll_no, Name und Alter anzugeben.

getRollNo(): number {
        return this.roll_no;
}

getName() : string {
	return this.name;
}

getAge() : number {
	return this.age;
}

Erstellen einer Instanz der Klasse in TypeScript

Ejemplo:

In TypeScript Um eine Instanz einer Klasse zu erstellen, mรผssen Sie den Operator new verwenden. Wenn wir eine Instanz einer Klasse mit dem Operator new erstellen, erhalten wir das Objekt, das auf die Eigenschaften und Methoden der Klasse zugreifen kann, wie unten gezeigt:

let student_details = new Students(15, "Harry John", 33);
student_details.getAge(); // 15
student_details.getName(); // Harry John

Kompilieren TypeScript Klasse bis JavaSkript

Sie kรถnnen den Befehl tsc wie unten gezeigt verwenden, um zu kompilieren Javascript.

Command: tsc  Students.ts

Die Ausgabe von Javascript Der Code bei der Kompilierung sieht wie folgt aus:

var Students = /** @class */ (function () {
    function Students(age, name, roll_no) {
        this.age = age;
        this.name = name;
        this.roll_no = roll_no;
    }
    Students.prototype.getRollNo = function () {
        return this.roll_no;
    };
    Students.prototype.getName = function () {
        return this.name;
    };
    Students.prototype.getAge = function () {
        return this.age;
    };
    return Students;
}());

In Javascript, die Klasse wird in eine selbstaufgerufene Funktion umgewandelt.

Klassenvererbung

Klassen kรถnnen mit vererbt werden erweitern Schlรผsselwort in TypeScript.

Syntax der Klassenvererbung:

class A {
     //define your properties here

    constructor() {
     // initialize your properties here
    }
 
   //define methods for class

}

class B extends A {
 //define your properties here

    constructor() {
     // initialize your properties here
    }
 
   //define methods for class

}

Klasse B wird teilen kรถnnen Klasse A Methoden und Eigenschaften.

Hier ist ein funktionierendes Beispiel einer Klasse, die Vererbung verwendet

class Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

    getName(): string {
        return this.name;
    }

    getAge(): number {
        return this.age;
    }
}

class Student extends Person {
    tmarks: number;
    getMarks(): number {
        return this.tmarks;
    }

    setMarks(tmarks) {
        this.tmarks = tmarks;
    }
}

let _std1 = new Student('Sheena', 24);
_std1.getAge(); // output is 24
_std1.setMarks(500);
_std1.getMarks(); // output is 500

Sie haben zwei Klassen: Person und Student. Die Student-Klasse erweitert Person, und das auf Student erstellte Objekt kann auf seine eigenen Methoden und Eigenschaften sowie auf die von ihm erweiterte Klasse zugreifen.

Lassen Sie uns nun einige weitere ร„nderungen an der obigen Klasse hinzufรผgen.

Ejemplo:

class Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

    getName(): string {
        return this.name;
    }

    getAge(): number {
        return this.age;
    }
}

class Student extends Person {
    tmarks: number;
    constructor(name: string, age: number, tmarks: number) {
        super(name, age);
    }
    getMarks(): number {
        return this.tmarks;
    }

    setMarks(tmarks) {
        this.tmarks = tmarks;
    }
}

let _std1 = new Student('Sheena', 24, 500);
_std1.getAge(); // output is 24
_std1.getMarks(); // output is 500

Die ร„nderungen, die Sie im Vergleich zum vorherigen Beispiel hinzugefรผgt haben, bestehen darin, dass in der Klasse Student ein Konstruktor definiert ist. Der Konstruktor muss dieselben Parameter wie die Basisklasse verwenden und ggf. zusรคtzliche eigene Parameter hinzufรผgen.

In TypeScript Sie mรผssen super aufrufen, wobei alle Parameter als Basisparameter darin enthalten sind. Dies muss als Erstes im Konstruktor erfolgen. super fรผhrt den Konstruktor der erweiterten Klasse aus.

Zugriffsmodifikatoren in TypeScript

TypeScript unterstรผtzt รถffentliche, private und geschรผtzte Zugriffsmodifikatoren fรผr Ihre Methoden und Eigenschaften. Wenn keine Zugriffsmodifikatoren angegeben sind, wird die Methode oder Eigenschaft standardmรครŸig als รถffentlich betrachtet und ist vom Objekt der Klasse aus leicht zugรคnglich.

Bei privaten Zugriffsmodifikatoren ist der Zugriff รผber das Objekt der Klasse nicht mรถglich und sie sind nur fรผr die Verwendung innerhalb der Klasse vorgesehen. Sie sind fรผr die geerbte Klasse nicht verfรผgbar.

Im Falle geschรผtzter Zugriffsmodifikatoren sind sie fรผr die Verwendung innerhalb der Klasse und der geerbten Klasse gedacht und sind vom Objekt der Klasse aus nicht zugรคnglich.

Ejemplo:

class Person {
    protected name: string;
    protected age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

    private getName(): string {
        return this.name;
    }

    getDetails(): string {
        return "Name is "+ this.getName();
    }
}

class Student extends Person {
    tmarks: number;
    constructor(name: string, age: number, tmarks: number) {
        super(name, age);  
        this.tmarks = tmarks;    
    }
    getMarks(): number {
        return this.tmarks;
    }

    getFullName(): string {
        return this.name;
    }
    
    setMarks(tmarks) {
        this.tmarks = tmarks;
    }
}

let _std1 = new Student('Sheena', 24, 500);
_std1.getMarks(); // output is 500
_std1.getFullName(); // output is Sheena
_std1.getDetails(); // output is Name is Sheena
  • Zur Alleinbenutzung: Auf Eigenschaften oder Methoden kann weder vom Objekt der Klasse noch von der abgeleiteten Klasse zugegriffen werden. Sie sind fรผr die interne Verwendung innerhalb der Klasse gedacht.
  • Geschรผtzt: Auf Eigenschaften und Methoden kann das erstellte Objekt auch nicht zugreifen. Sie sind innerhalb der Klasse zugรคnglich und stehen der Klasse zur Verfรผgung, die sie erweitert.
  • ร–ffentlichkeit: Eigenschaften und Methoden werden ohne Schlรผsselwort deklariert. Der Zugriff auf sie ist รผber das Objekt der Klasse von auรŸen leicht mรถglich.

Schnittstelle in TypeScript

Eine der Kernfunktionen von TypeScript sind Schnittstellen. Die Schnittstelle ist ein Satz definierter Regeln, die von der Entitรคt, die sie verwendet, implementiert werden mรผssen. Die Entitรคt kann eine Klasse, Funktion oder Variable sein. Eine Schnittstelle kann aus Eigenschaften und Methoden bestehen. Sie kรถnnen Eigenschaften als optional definieren, indem Sie die Syntax โ€ž?โ€œ fรผr diese Eigenschaft oder Methode verwenden. Die Schnittstelle fรผgt eine strenge Typprรผfung fรผr jede Funktion, Variable oder Klasse hinzu, die die Schnittstelle implementiert.

Syntax einer Schnittstelle in TypeScript

interface Dimension {
    width: string;
    height: string;
}

Sie haben eine Schnittstelle mit dem Namen โ€žDimensionโ€œ definiert, die รผber die Eigenschaften โ€žBreiteโ€œ und โ€žHรถheโ€œ verfรผgt und beide รผber den Typ โ€žStringโ€œ verfรผgen.

Jetzt kann diese Schnittstelle durch eine Variable, eine Funktion oder eine Klasse implementiert werden. Hier ist das Beispiel einer Variablen, die die Schnittstelle Dimension implementiert.

Ejemplo:

interface Dimension {
    width: string;
    height: string;
}

let _imagedim: Dimension = {
    width: "100px",
    height: "200px"
};

Die Signatur der Schnittstellendimension hat Breite und Hรถhe und beide sind obligatorisch. Falls bei der Implementierung der Schnittstelle eine Eigenschaft fehlt oder der Typ geรคndert wird, kommt es beim Kompilieren des Codes zu Javascript zu einem Fehler bei der Kompilierung.

Wenn der obige Code in Javascript kompiliert wird, sieht er wie folgt aus:

var _imagedim = {
    width: "100px",
    height: "200px"
};

Sehen wir uns nun an, wie man eine Schnittstelle mit einer Funktion verwendet.

Verwenden von Interface fรผr eine Funktion als Rรผckgabetyp

Ejemplo:

interface Dimension {
    width: string;
    height: string;
}

function getDimension() : Dimension {
    let width = "300px";
    let height = "250px";
    return {
        width: width,
        height: height
    }
}

Im obigen Beispiel wird die Schnittstelle Dimension auf der Funktion getDimension() als Rรผckgabetyp implementiert. Der Rรผckgabetyp von getDimension() muss mit den fรผr Interface Dimension genannten Eigenschaften und Typ รผbereinstimmen.

Der kompilierte Code zu Javascript wird wie folgt sein:

function getDimension() {
    var width = "300px";
    var height = "250px";
    return {
        width: width,
        height: height
    };
}

Wenn der Rรผckgabetyp wรคhrend der Kompilierung nicht mit der Schnittstelle รผbereinstimmt, wird ein Fehler ausgegeben.

Schnittstelle als Funktionsparameter

interface Dimension {
    width: string;
    height: string;
}

function getDimension(dim: Dimension) : string {
    let finaldim  = dim.width +"-"+ dim.height;
    return finaldim;
}

getDimension({width:"300px", height:"250px"}); // will get "300px-250px"

Im obigen Beispiel haben Sie Interface Dimension als Parameter fรผr die Funktion getDimension() verwendet. Wenn Sie die Funktion aufrufen, mรผssen Sie sicherstellen, dass der an sie รผbergebene Parameter mit der definierten Schnittstellenregel รผbereinstimmt.

Der kompilierte Code zu Javascript wird wie folgt sein:

function getDimension(dim) {
    var finaldim = dim.width + "-" + dim.height;
    return finaldim;
}
getDimension({ width: "300px", height: "250px" });

Klassenimplementierende Schnittstelle

Um die Schnittstelle mit einer Klasse nutzen zu kรถnnen, mรผssen Sie das Schlรผsselwort verwenden implementiert.

Syntax fรผr eine Klasse, die eine Schnittstelle implementiert:

class NameofClass implements InterfaceName {
}

Das folgende Beispiel zeigt die Funktionsweise der Schnittstelle mit Klasse.

interface Dimension {
    width : string,
    height: string,
    getWidth(): string; 
}

class Shapes implements Dimension {
    width: string;
    height: string;
    constructor (width:string, height:string) {
        this.width = width;
        this.height = height;
    }
    getWidth() {
        return this.width;
    }
}

Im obigen Beispiel haben Sie die Schnittstelle Dimension mit den Eigenschaften width und height vom Typ string und einer Methode namens getWidth() definiert, die einen Rรผckgabewert als String hat.

Der kompilierte Code zu Javascript wird wie folgt sein:

var Shapes = /** @class */ (function () {
    function Shapes(width, height) {
        this.width = width;
        this.height = height;
    }
    Shapes.prototype.getWidth = function () {
        return this.width;
    };
    return Shapes;
}());

Funktionen in TypeScript

Funktionen sind Anweisungen, die zur Ausfรผhrung einer Aufgabe ausgefรผhrt werden. JavascriptDer grรถรŸte Teil des Codes ist in Form von Funktionen geschrieben und spielt eine wichtige Rolle. In TypeScriptstehen Ihnen Klassen, Schnittstellen, Module und Namespaces zur Verfรผgung, aber dennoch spielen Funktionen eine wichtige Rolle. Der Unterschied zwischen der Funktion in Javascript und TypeScript Funktion ist der Rรผckgabetyp, der verfรผgbar ist mit TypeScript Funktion.

JavaSkriptfunktion:

function add (a1, b1) { 
   return a1+b1;
}

TypeScript Funktion:

function  add(a1 : number, b1: number) : number {
    return a1 + b1;
}

In den oben genannten Funktionen wird der Name der Funktion hinzugefรผgt, die Parameter sind a1 und b1 beide haben einen Typ als Zahl, und der Rรผckgabetyp ist auch eine Zahl. Wenn Sie der Funktion einen String รผbergeben, wird beim Kompilieren ein Kompilierfehler ausgegeben. JavaSkript.

Aufruf der Funktion: add

let  x = add(5, 10) ;  // will return 15
let  b = add(5); // will throw an error : error TS2554: Expected 2 arguments, but got 1.
let c = add(3,4,5); // will throw an error : error TS2554: Expected 2 arguments, but got 3.
let t = add("Harry", "John");// will throw an error :  error TS2345: Argument of type '"Harry"' is not assignable to parameter of type 'number'.

Die Parameter a1 , b1 sind obligatorische Parameter und lรถsen einen Fehler aus, wenn sie nicht auf diese Weise empfangen werden. AuรŸerdem sind der Parametertyp und der Rรผckgabetyp sehr wichtig und kรถnnen nach der Definition nicht mehr geรคndert werden.

Optionale Parameter fรผr eine Funktion

In Javascript sind alle Parameter der Funktionen optional und werden als undefiniert betrachtet, wenn sie nicht รผbergeben werden. Dasselbe gilt jedoch nicht fรผr TypeScript, sobald Sie die Parameter definiert haben, mรผssen Sie sie auch senden. Falls Sie jedoch einen Parameter optional halten mรถchten, kรถnnen Sie dies tun, indem Sie? gegenรผber dem Parameternamen verwenden, wie unten gezeigt:

function getName(firstname: string, lastname?: string): string {
    return firstname + lastname;
}

let a = getName("John"); // will return Johnundefined.
let b = getName("John", "Harry"); // will return JohnHarry
let c = getName("John", "H", "Harry"); // error TS2554: Expected 1-2 arguments, but got 3.

Bitte beachten Sie, dass die optionalen Parameter nur zuletzt in einer Funktion definiert werden mรผssen. Sie kรถnnen den ersten Parameter nicht als optional und den zweiten Parameter als obligatorisch festlegen. Wenn Sie die Funktion mit einem Parameter aufrufen, gibt der Compiler einen Fehler aus. Daher ist es notwendig, die optionalen Parameter am Ende beizubehalten.

Weisen Sie den Parametern Standardwerte zu

Sie kรถnnen Parametern Standardwerte zuweisen, wie unten gezeigt:

function getName(firstname: string, lastname = "Harry"): string {
    return firstname + lastname;
}

let a = getName("John"); // will return JohnHarry
let b = getName("John", "H"); // will return JohnH

ร„hnlich wie bei optionalen Parametern mรผssen auch hier standardmรครŸig initialisierte Parameter am Ende einer Funktion beibehalten werden.

Ruheparameter

Sie haben gesehen, wie TypeScript behandelt obligatorische Parameter, optionale Parameter und die mit dem Standardwert initialisierten Parameter. Nun werden wir uns die Restparameter ansehen. Restparameter sind eine Gruppe optionaler Parameter, die gemeinsam definiert werden, und sie werden mithilfe von drei definiert Punkte (โ€ฆ) gefolgt vom Namen des Parameters, der ein Array ist.

Syntax fรผr Rest-Parameter:

function testFunc(a: string, ...arr: string[]) :string {
    return a + arr.join("");
}

Wie oben gezeigt, werden die restlichen Parameter mit (โ€ฆparam-name) definiert. Der restliche Parameter ist ein Array, dem drei Punkte vorangestellt sind. An das Array werden alle Parameter รผbergeben. Sie kรถnnen die Funktion aufrufen, wie im folgenden Beispiel gezeigt:

Ejemplo:

let a = testFunc("Monday", "Tuesday", "Wednesday", "Thursday"); // will get output as MondayTuesdayWednesdayThursday

Pfeilfunktionen

Eine Pfeilfunktion ist eine der wichtigen Funktionen, die in ES6 verรถffentlicht wurden, und ist verfรผgbar in TypeScript auch. Die Syntax der Pfeilfunktion enthรคlt einen dicken Pfeil, weshalb die Funktion als Pfeilfunktion bezeichnet wird.

Syntax der Pfeilfunktion:

var nameoffunction = (params) => {				
 // code here			
}

Wozu dient die Pfeilfunktion?

Schauen wir uns das Beispiel an, um den Anwendungsfall der Pfeilfunktion zu verstehen:

Ejemplo:

var ScoreCard = function () {
    this.score = 0;

    this.getScore = function () {
        setTimeout(function () {
            console.log(this.score);    // gives undefined.    
        }, 1000);
    }    
}

var a = new ScoreCard();
a.getScore();

Sie haben eine anonyme Funktion erstellt, die รผber die Eigenschaft this verfรผgt. Score initialisiert auf 0 und eine Methode getScore, die intern einen setTimeout hat und in 1 Sekunde this.score trรถstet. Der getrรถstete Wert ergibt โ€žundefiniertโ€œ, obwohl Sie โ€žthis.scoreโ€œ definiert und initialisiert haben. Das Problem hier ist mit this Stichwort. Die Funktion in setTimeout hat ihr eigenes this und versucht, intern auf die Punktzahl zu verweisen. Da sie nicht definiert ist, gibt sie undefiniert aus.

Das Gleiche kann mit der Pfeilfunktion wie unten gezeigt erledigt werden:

var ScoreCard = function () {
    this.score = 0;

    this.getScore = function () {
        setTimeout(()=>{
            console.log(this.score);   // you get  0
        }, 1000);
    }    
}

var a = new ScoreCard();
a.getScore();

Sie haben die Funktion in setTimeout wie unten gezeigt in eine Pfeilfunktion geรคndert:

setTimeout(()=>{
            console.log(this.score);   // you get  0
        }, 1000);

Eine Pfeilfunktion hat keine eigene fehlen uns die Worte. definiert und teilt sein รผbergeordnetes fehlen uns die Worte., sodass auรŸerhalb deklarierte Variablen mithilfe dieser Funktion innerhalb einer Pfeilfunktion leicht zugรคnglich sind. Sie sind aufgrund der kรผrzeren Syntax sowie fรผr Rรผckrufe, Event-Handler, Inside-Timing-Funktionen usw. nรผtzlich.

TypeScript Enums

TypeScript Enum ist ein Objekt, das eine Sammlung zusammengehรถriger, gespeicherter Werte enthรคlt. Javascript unterstรผtzt keine Enumerationen. Die meisten Programmiersprache Google Trends, Amazons Bestseller Java, C, C++ unterstรผtzt TypeScript Enum und es ist auch verfรผgbar mit TypeScript auch. Enumerationen werden mit dem Schlรผsselwort enum definiert.

Wie deklariere ich eine Enum?

Syntax:

enum NameofEnum {
   value1,
   value2,
    ..
}

Beispiel: Enum

enum Directions {
North,
South,
East,
West
}

Im obigen Beispiel haben Sie eine Enumeration namens Directions definiert. Der angegebene Wert ist Nord, Sรผd, Ost, West. Die Werte werden beginnend mit 0 fรผr den ersten Wert in der Aufzรคhlung nummeriert und anschlieรŸend um 1 fรผr den nรคchsten Wert erhรถht.

Deklarieren Sie eine Aufzรคhlung mit einem numerischen Wert

Wenn einer Aufzรคhlung standardmรครŸig kein Wert zugewiesen wird, wird dieser als Zahl betrachtet, die bei 0 beginnt. Das folgende Beispiel zeigt eine Aufzรคhlung mit einem numerischen Wert.

enum Directions {
North = 0,
South = 1, 
East =2,
West =3
}

Sie kรถnnen der Aufzรคhlung auch einen Startwert zuweisen und die nรคchsten Aufzรคhlungswerte erhalten die inkrementierten Werte. Zum Beispiel:

enum Directions {
North = 5,
South, // will be 6
East, // 7
West // 8
}

Jetzt beginnt der Enum-Wert Nord mit 5, sodass Sรผd den Wert 6, Ost = 7 und West = 8 erhรคlt.

Sie kรถnnen auch Werte Ihrer Wahl zuweisen, anstatt die Standardwerte zu รผbernehmen. Zum Beispiel:

enum Directions {
North = 5,
South = 4,
East = 6,
West = 8
}

Wie greife ich auf eine Enum zu?

Das folgende Beispiel zeigt, wie Sie Enum in Ihrem Code verwenden:

enum Directions {
    North,
    South,
    East,
    West
}

console.log(Directions.North); // output is  0
console.log(Directions["North"]); // output is 0
console.log(Directions[0]); //output is North

Der fรผr Javascript kompilierte Code lautet wie folgt:

var Directions;
(function (Directions) {
    Directions[Directions["North"] = 0] = "North";
    Directions[Directions["South"] = 1] = "South";
    Directions[Directions["East"] = 2] = "East";
    Directions[Directions["West"] = 3] = "West";
})(Directions || (Directions = {}));
console.log(Directions.North);
console.log(Directions["North"]);
console.log(Directions[0]);

Da Javascript unterstรผtzt keine Enumerationen, es konvertiert die Enumeration in selbstaufgerufene Funktionen, wie oben gezeigt.

Deklarieren Sie eine Aufzรคhlung mit einem Zeichenfolgenwert

Sie kรถnnen Zeichenfolgenwerte Ihrer Wahl zuweisen, wie im folgenden Beispiel gezeigt:

Ejemplo:

enum Directions {
    North = "N",
    South = "S",
    East = "E",
    West = "W"
}

console.log(Directions.North); // output is N
console.log(Directions["North"]); // output is N
console.log(Directions[0]); // output is North

Der fรผr Javascript kompilierte Code lautet wie folgt:

var Directions;
(function (Directions) {
    Directions["North"] = "N";
    Directions["South"] = "S";
    Directions["East"] = "E";
    Directions["West"] = "W";
})(Directions || (Directions = {}));
console.log(Directions.North);
console.log(Directions["North"]);
console.log(Directions[0]);

Was sind die Module in TypeScript?

Die erstellten Dateien in TypeScript haben globalen Zugriff, was bedeutet, dass auf in einer Datei deklarierte Variablen in einer anderen Datei problemlos zugegriffen werden kann. Diese globale Natur kann zu Codekonflikten fรผhren und zur Laufzeit zu Problemen bei der Ausfรผhrung fรผhren. Sie verfรผgen รผber Export- und Importmodulfunktionen, mit denen Sie Konflikte globaler Variablen und Funktionen vermeiden kรถnnen. Diese Funktion ist verfรผgbar in JavaSkript mit ES6-Release und auch unterstรผtzt in TypeScript.

Warum brauchen Sie Module in TypeScript?

Das folgende Beispiel zeigt das Problem ohne Module:

Beispiel test1.ts

let age : number = 25;

Sie haben in test1.ts eine Variable โ€žAlterโ€œ vom Typ โ€žNummerโ€œ definiert.

Beispiel test2.ts

In der Datei test2.ts kรถnnen Sie problemlos auf die Variable zugreifen Alter definiert in test1.ts und รคndern Sie es auch wie unten gezeigt:

age = 30; // changed from 25 to 30.
let _new_age = age;

Der obige Fall kann daher zu vielen Problemen fรผhren, da die Variablen global verfรผgbar sind und geรคndert werden kรถnnen.

Mit Module, bleibt der geschriebene Code im Gebietsschema der Datei und kann auรŸerhalb der Datei nicht aufgerufen werden. Um auf etwas aus der Datei zuzugreifen, muss sie mit dem Schlรผsselwort export exportiert werden. It wird verwendet, wenn Sie mรถchten, dass die Variable, Klasse, Funktion oder Schnittstelle in einer anderen Datei verwendet wird. Import wird verwendet, wenn Sie auch auf die exportierte Variable, Klasse, Schnittstelle oder Funktion zugreifen mรถchten. Dadurch bleibt der geschriebene Code in der Datei erhalten, und selbst wenn Sie dieselben Variablennamen definieren, werden sie nicht verwechselt und verhalten sich lokal in der Datei, in der sie deklariert werden.

Verwenden von Export und Import

Es gibt viele Mรถglichkeiten zum Exportieren und Importieren. Deshalb wird hier die Syntax besprochen, die am hรคufigsten verwendet wird.

Die Syntax fรผr Import und Export 1:

export  nameofthevariable or class name or interface name etc

//To import above variable or class name or interface you have to use import as shown below:
 

Import {nameof thevariable or class name or interfacename} from "file path here without.ts"

Hier ist ein funktionierendes Beispiel fรผr die Verwendung von Export und Import.

Ejemplo:

test1.ts

export let age: number = 25;

Das Schlรผsselwort โ€žExportโ€œ wird verwendet, um die Altersvariable in einer anderen Datei freizugeben.

test2.ts

import { age } from "./test1"
let new_age :number = age;

Fรผr den Zugriff wird das Schlรผsselwort โ€žImportโ€œ verwendet Alter Variable, und Sie mรผssen den Dateispeicherort wie oben gezeigt angeben.

Syntax fรผr Import und Export 2:

Es gibt eine andere Mรถglichkeit zum Exportieren und Importieren. Die Syntax dafรผr ist wie folgt:

export = classname;

import classname = require(โ€œfile path of modulenameโ€)

Wenn Sie verwenden exportieren = Um Ihr Modul zu exportieren, muss der Import โ€žrequire(โ€žDateipfad des Modulnamensโ€œ) verwenden, um es zu importieren.

Hier ist ein funktionierendes Beispiel, das den obigen Fall zeigt:

Kunde.ts

class Customer {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

    getName(): string {
        return this.name;
    }
}

export = Customer;

testCustomer.ts

import Customer = require("./Customer");

let a = new Customer("Harry", 30);
alert(a.getName());

Modullader

Module kรถnnen nicht eigenstรคndig arbeiten, daher benรถtigen Sie einen Modullader, um die Importabhรคngigkeiten zu lokalisieren, wie Sie in TypeScript Beispiele siehe oben. Der verfรผgbare Modullader ist CommonJS fรผr nodejs und Require.js zur Ausfรผhrung im Browser.

Um Code mit dem CommonJS-Modul zu kompilieren, verwenden Sie den folgenden Befehl:

tsc --module commonjs testCustomer.ts

Um Code mit dem Requirejs-Modul zu kompilieren, verwenden Sie den folgenden Befehl:

tsc --module amd testCustomer.ts

Die abhรคngigen Dateien werden mit dem obigen Befehl in eine JS-Datei konvertiert.

Beispiel testCustomer.ts zu testCustomer.js mit Requirejs

define(["require", "exports", "./Customer"], function (require, exports, Customer) {
    "use strict";
    exports.__esModule = true;
    var a = new Customer("Harry", 30);
    alert(a.getName());
});

Beispiel: Customer.ts zu Customer.js mit Requirejs

define(["require", "exports"], function (require, exports) {
    "use strict";
    var Customer = /** @class */ (function () {
        function Customer(name, age) {
            this.name = name;
            this.age = age;
        }
        Customer.prototype.getName = function () {
            return this.name;
        };
        return Customer;
    }());
    return Customer;
});

Um es mit require.js zu testen, mรผssen Sie eine Datei namens main.js erstellen, die wie gezeigt auf die Abhรคngigkeiten verweist.

Hier ist die Ordnerstruktur:

src/
    Customer.js
    testCustomer.js
    main.js
    require.js  // you can get this file from github or npm install requirejs
    test.html

Main.js

define(function (require) {
    var customer = require("./Customer");
    var testCustomer = require("./testCustomer");
});

test.html

<!DOCTYPE html>			
<html>			
<head>			
    <title>TypeScript Module testing using Requirejs</title>			
    <script data-main="main" src="require.js"></script>			
</head>			
<body>			
    <h3>Testing modules using Requirejs</h3>			
</body>			
</html>

Modullader

Namespaces in TypeScript

Namespace besteht im Wesentlichen aus einer Sammlung von Klassen, Schnittstellen, Variablen und Funktionen in einer Datei.

Namespace-Syntax

namespace name{

export class {
}

export interface {
}

export const constname;

}

Der zugehรถrige Code ist unter einem Namensraum verfรผgbar.

Arbeitsbeispiel fรผr einen Namespace: testnamespace.ts

namespace StudentSetup {

    export interface StudDetails {
        name: string;
        age: number;
    }

    export function addSpace(str) { // will add space to the string given
        return str.split("").join(" ");
    }

    export class Student implements StudDetails {
        name: string;
        age: number;

        constructor(studentdetails: StudDetails) {
            this.name = studentdetails.name;
            this.age = studentdetails.age;
        }

        getName(): string {
            return this.name;
        }
    }
}

Der Name des Namespace ist StudentSetup, Sie haben eine Schnittstelle โ€žStudDetailsโ€œ, die Funktion โ€žaddSpaceโ€œ und eine Klasse namens โ€žStudentโ€œ hinzugefรผgt.

Zugreifen auf Namespace

Nachfolgend sehen Sie den Code, in dem Sie den Namespace verwenden StudentSetup.

testStudentSetup.ts

let a = new StudentSetup.Student({ name: "Harry", age: 20 });

console.log("The name is :" + StudentSetup.addSpace(a.getName()));

Die in einem Namespace verfรผgbare Klasse, Schnittstelle oder Funktion muss mithilfe des Namens des Namespace-Beispiels referenziert werden StudentSetup.addSpace um auf die Funktion zuzugreifen, StudentSetup.Student um auf die Klasse zuzugreifen.

Sie kรถnnen beide Dateien wie unten gezeigt in ein JS kompilieren:

tsc --outFile namespace.js testnamespace.ts  testStudentSetup.ts

รœberprรผfen Sie die Ausgabe in der Eingabeaufforderung mit dem folgenden Befehl:

node namespace.js

Die Ausgabe wird wie folgt angezeigt:

The name is: H a r r y

Umgebungsdeklarationen in TypeScript

TypeScript ermรถglicht die Verwendung von JavaScript-Dateien von Drittanbietern mithilfe der Ambient-Deklaration. Der Vorteil dieser Funktion besteht darin, dass Sie nicht neu schreiben mรผssen und dennoch alle Funktionen der Bibliothek nutzen kรถnnen. TypeScript.

Ambient-Syntax

So deklarieren Sie das Ambient-Modul:

declare module moduleName {
   //code here
}

Die Ambient-Datei muss wie folgt gespeichert werden:

filename.d.ts

Um die Datei zu verwenden Dateiname.d.ts In Ihrer .ts-Datei mรผssen Sie darauf verweisen als:

/// <reference path="filename.d.ts"/>

Die Ambient-Typdeklaration in TypeScript enthรคlt einen Verweis auf die Drittanbieterbibliothek und deklariert die erforderlichen Funktionen mit ihrem eigenen Typ erneut. Angenommen, Sie haben eine kleine JavaScript-Bibliothek, wie unten gezeigt:

Third Party JavaSkriptdatei: testString.js

Beispiel: testString.js

var StringChecks = {
    isString: function (str) {
        return typeof str === "string";
    },

    convertToUpperCase: function (str) {
        return str.toUpperCase();
    },

    convertToLowerCase: function (str) {
        return str.toLowerCase();
    },

    convertToStringBold: function (str) {
        return str.bold();
    }
};

Sie haben ein Objekt namens StringChecks, das Funktionen wie isString, convertToUpperCase, convertToLowerCase und converToStringBold hat.

Erstellen eines Ambient-Moduls in TypeScript

Jetzt erstellen wir ein Ambient-Modul, das auf die oben genannten js-Funktionen verweist und gemรครŸ unseren Anforderungen auch eine Typprรผfung hinzufรผgt.

Dateiname: tstring.d.ts

declare module TestString {

    export interface StringsFunc {
        isString(str: string): boolean;
        convertToUpperCase(str: string): string;
        convertToLowerCase(str: string): string;
        convertToStringBold(str: string): string;
    }
}

declare var StringChecks: TestString.StringsFunc;

Sie mรผssen einen Modulnamen als TestString definieren und die Schnittstelle StringsFunc exportiert haben.

isString(str: string): boolean

=> Dies nimmt param als Zeichenfolge an und der Rรผckgabetyp ist boolesch. Wenn Sie den Parameter in Ihrer .ts-Datei als Zahl oder als etwas anderes als eine Zeichenfolge รผbergeben, erhalten Sie einen Fehler beim Kompilieren.

konvertierenToUpperCase(str:string): string

=> Dies nimmt das Argument als String und gibt einen String zurรผck. Das Gleiche gilt konvertierenToLowerCase(str: string)
: Zeichenfolge; Und konvertierenToStringBold(str: string): string
;

Da Sie in der Javascript-Datei den Objektnamen als StringChecks haben, mรผssen wir schlieรŸlich in der .d.ts-Datei auf dasselbe verweisen, was wie folgt geschieht:

declare var StringChecks: TestString.StringsFunc;

Verwendung des Ambient-Moduls in TypeScript

Hier ist nun die Datei test.ts, in der die Umgebungsdatei tstring.d.ts verwendet wird

Beispiel: test.ts

/// <reference path="tstring.d.ts"/>
let str1 = StringChecks.isString("Hello World");
console.log(str1);
let str2 = StringChecks.convertToUpperCase("hello world");
console.log(str2);
let str3 = StringChecks.convertToLowerCase("HELLO");
console.log(str3);
let str4 = StringChecks.convertToStringBold("Hello World");
console.log(str4);

Kompilieren TypeScript tsc test.ts zu test.js

/// <reference path="tstring.d.ts"/>
var str1 = StringChecks.isString("Hello World");
console.log(str1);
var str2 = StringChecks.convertToUpperCase("hello world");
console.log(str2);
var str3 = StringChecks.convertToLowerCase("HELLO");
console.log(str3);
var str4 = StringChecks.convertToStringBold("Hello World");
console.log(str4);

Jetzt kรถnnen Sie test.js in der HTML-Datei und auch die Bibliotheksdatei testString.js verwenden

<html>			
<head>			
    <title>Test TypeScript Ambient</title>			
    <script src="testStrings.js"></script>			
    <script src="test.js"></script>			
</head>			
<body>			
</body>			
</html>

Dies ist die Ausgabe, die in der Konsole angezeigt wird:

true			
HELLO WORLD			
hello			
<b>Hello World</b>

TypeScript Geschichte

Sehen Sie wichtige Sehenswรผrdigkeiten aus der Geschichte von TypeScript:

  • Nach zwei Jahren interner Entwicklung bei Microsoft. TypeScript 0.9, verรถffentlicht im Jahr 2013
  • Zusรคtzliche Unterstรผtzung fรผr Generika TypeScript 1.0 wurde auf Build 2014 verรถffentlicht
  • Im Juli 2014 eine neue TypeScript Compiler kam, der fรผnfmal schneller ist als die vorherige Version.
  • Im Juli 2015 Unterstรผtzung fรผr ES6-Module, Namespace-Schlรผsselwort, fรผr, von Support, Dekoratoren.
  • Im November 2016 wurde eine zusรคtzliche Funktion wie Schlรผssel- und Suchtypen fรผr zugeordnete Typen usw. hinzugefรผgt.
  • Am 27. Mรคrz 2018 wurden bedingte Typen, der verbesserte Schlรผssel mit Schnittmengentypenunterstรผtzung in der TypeScript.

Warum TypeScript?

Hier sind wichtige Vorteile der Verwendung TypeScript

  • GroรŸes und komplexes Projekt in JavaSkripte sind schwierig zu codieren und zu warten.
  • TypeScript hilft sehr bei der Code-Organisation und beseitigt dennoch die meisten Fehler wรคhrend der Kompilierung.
  • TypeScript unterstรผtzt JS-Bibliotheken und API-Dokumentation
  • Es handelt sich um eine optional typisierte Skriptsprache
  • TypeScript Code kann in Klartext umgewandelt werden JavaSkriptcode
  • Bessere Codestrukturierung und objektorientierte Programmiertechniken
  • Ermรถglicht eine bessere Tool-Unterstรผtzung fรผr die Entwicklungszeit
  • Es kann die Sprache รผber die Standarddekoratoren async/await hinaus erweitern

Wer benutzt TypeScript?

Hier sind einige der hรคufigsten Anwendungen von TypeScript:

  • Das Angular-Team verwendet TypeScript.
  • NodeJS- und NPM-Installation
  • TypeScript Installation
  • Kompilieren TypeScript Code zu Javascript
  • Fรผhren Sie Code mit Nodejs aus
  • Ausfรผhren Javascript im Browser
  • Kompilieren TypeScript Code zu Javascript mit EcmaScript-Version
  • Sie kรถnnen Code, der in TypeScript zu JavaSkript mit NodeJS.
  • Also mit zu arbeiten TypeScript Sie mรผssen zuerst NodeJS herunterladen und installieren.

Zusammenfassung

  • TypeScript ist eine Obermenge von JavaSkript. TypeScript ist eine rein objektorientierte Programmiersprache, die Klassen, Schnittstellen usw. unterstรผtzt.
  • TypeScript unterstรผtzt alle verรถffentlichten Ecmascript-Funktionen und Entwickler kรถnnen diese beim Codieren verwenden.
  • Variablen werden zum Speichern von Werten verwendet. Der Wert kann eine Zeichenfolge, eine Zahl, ein boolescher Wert oder ein Ausdruck sein.
  • In TypeScript, der Typ einer Variablen wird nur zu Beginn definiert und muss wรคhrend der gesamten Ausfรผhrung derselbe Typ bleiben. Jede ร„nderung daran fรผhrt zu einem Kompilierfehler wรคhrend der Kompilierung in JavaScript.
  • Ein Array in TypeScript ist ein Datentyp, in dem Sie mehrere Werte speichern kรถnnen.
  • Klasse ist eine neue Funktion, die ab ES6 hinzugefรผgt wurde. JavaEs wurde versucht, die Klassentypfunktionalitรคt mithilfe einer Funktion mit Prototypfunktionalitรคt zu skripten, um Code wiederzuverwenden.
  • TypeScript unterstรผtzt รถffentliche, private und geschรผtzte Zugriffsmodifikatoren fรผr Ihre Methoden und Eigenschaften.
  • Eine der Kernfunktionen von TypeScript sind Schnittstellen. Die Schnittstelle ist ein Satz definierter Regeln, die von der Entitรคt, die sie verwendet, implementiert werden mรผssen.
  • Funktionen sind eine Reihe von Anweisungen, die zur Ausfรผhrung einer Aufgabe ausgefรผhrt werden.
  • TypeScript Enum ist ein Objekt, das eine Sammlung zusammengehรถriger, gespeicherter Werte enthรคlt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: