TypeScript Tutorial: Hvad er, Interface, Enum, Array med eksempel

Hvad er TypeScript?

TypeScript er et supersรฆt af JavaManuskript. TypeScript er rent objektorienteret programmeringssprog, der understรธtter klasser, interfaces osv. Det er et open source sprog udviklet af Microsoft som statisk kompilerer koden til JavaManuskript. Det kan nemt kรธre i en browser eller Nodejs.

Alle de seneste funktioner frigivet til ECMAScript understรธttes i TypeScript og derudover TypeScript har sine egne objektorienterede funktioner som grรฆnseflader, ambient-deklaration, klassearv osv., som hjรฆlper med at udvikle en stor applikation, som ellers ville vรฆre svรฆr at lave i JavaScript.

Sรฅdan downloades og installeres TypeScript

Her er den trinvise proces til download og installation TypeScript:

Trin 1) Download og installer Nodejs

Gรฅ til det officielle websted for nodejs: https://nodejs.org/en/download/ og download og installer nodejs i henhold til dit operativsystem. Den detaljerede instruktion om, hvordan du downloader nodejs er tilgรฆngelig her: https://www.guru99.com/download-install-node-js.html

Trin 2) Tjek Nodejs og npm version

For at kontrollere, om nodejs og npm er installeret, skal du bare tjekke versionen i din kommandoprompt.

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

D:\typeproject>npm --version
6.4.1

Sรฅ du har nodejs v10 og npm 6 installeret.

Trin 3) TypeScript Installation

Opret din projektmappe typeproject/ og kรธr npm init, som vist i kommandoen nedenfor:

npm init

Trin 4) Start installationen

Nu vil vi oprette pakken .json, som gemmer afhรฆngighederne for vores projekt.

Nรฅr installationen er fรฆrdig TypeScript som fรธlger:

npm -g install typescript

Ovenstรฅende kommando tager sig af installationen TypeScript. Tilfรธjelse af "-g" til npm install vil installere TypeScript globalt. Fordelen ved at bruge -g er, at du vil vรฆre i stand til at bruge TypeScript TSC kommando fra enhver mappe, som den er installeret globalt. Hvis du ikke รธnsker at installere TypeScript globalt brug nedenstรฅende kommando:

npm --save install typescript

Opret src/-mappe i din projektmappe og i src/-mappe opret TypeScript fil test.ts og skriv din kode.

Eksempel : test.ts

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

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

Kompiler TypeScript kode til Javascript

For at kompilere ovenstรฅende kode, brug fรธlgende kommando:

If TypeScript er installeret globalt, brug nedenstรฅende kommando:

tsc test.ts

If TypeScript er installeret lokalt til dit projekt, du skal bruge stien til TypeScript fra node_modules som vist:

node_modules/typescript/bin/tsc test.ts

Ovenstรฅende kommando vil oprette en test.js-fil og fรฅ kode kompileret til javascript.

Eksempel : test.js

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

Udfรธr Javascript ved hjรฆlp af Nodejs

I denne TypeScript tutorial, vil vi udfรธre test.js i nodejs som fรธlger:

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

Vรฆrdien trรธstet vises ved udfรธrelse af test.js

Udfรธr JavaScript i browser

Eksempel:

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

Udfรธr Javascript ved hjรฆlp af Nodejs

Kompiler TypeScript kode til Javascript ved hjรฆlp af EcmaScript-version

TypeScript understรธtter alle de frigivne Ecmascript-funktioner, og udviklere kan bruge det samme, mens de koder. Men ikke alle de nye funktioner understรธtter รฆldre browsere, hvorfor du skal kompilere javascript til en รฆldre version af Ecmascript. TypeScript giver kompileringsmuligheder, der kan gรธre det.

Eksempel : test.ts

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

addnumbers(10, 20);

For at kompilere til ES-versionen efter eget valg, kan du bruge indstillingen target eller t i din kommando som fรธlger:

tsc --target ES6  test.ts

OR

tsc -t ES6 test.ts

Som standard er mรฅlet ES3. Hvis du vil รฆndre det, kan du bruge ovenstรฅende kommando.

Pรฅ nuvรฆrende tidspunkt vil vi bruge ES6 i dette TypeScript tutorial som mรฅl:

tsc --target ES6  test.ts

test.ts til test.js

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

addnumbers(10, 20);

Koden forbliver som den er, da pilefunktionen du har brugt er en ES6-funktion og det samme nรฅr den kompileres til ES6 รฆndres ikke.

Som standard er mรฅlet ES3, sรฅ uden mรฅl fรฅr du test.js som:

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

Sรฅ herovre er den fede pil รฆndret til en normal anonym funktion.

Variabler i TypeScript

Variabler bruges til at gemme vรฆrdier, og vรฆrdien kan vรฆre en streng, tal, boolesk eller et udtryk. Nรฅr det kommer til variabler i TypeScript, de ligner JavaScript. Sรฅ lad os lรฆre at erklรฆre og tildele vรฆrdi til variabler i TypeScript.

Variabler kan ikke bruges i kode uden at definere. For at erklรฆre en variabel kan du bruge

var sรธgeord,

lad sรธgeord

const sรธgeord

Arbejde med variabler i TypeScript ligner javascript, og brugere, der er fortrolige med javascript, vil finde det meget nemt. Kun variabler som lad og const er ikke meget brugt i forhold til var.

Erklรฆring af variable ved hjรฆlp af var

Syntaks:

var firstname = "Roy";

Lad os tage et kig pรฅ nogle fรฅ TypeScript eksempler for at forstรฅ, hvordan var nรธgleord fungerer, og ogsรฅ omfanget af variabler, der er erklรฆret ved hjรฆlp af var nรธgleord.

Eksempel 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

Eksempel 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.

Eksempel 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.

Erklรฆre variabler ved hjรฆlp af let

TypeScript syntaks for let er som angivet nedenfor:

Syntaks:

let name="Roy";

Arbejdet med lad variabel er nรฆsten den samme som var, men med en lille forskel og vil forstรฅ det samme ved at bruge en TypeScript eksempel.

Eksempel:

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

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

Over TypeScript eksempel kaster en fejl, men det samme ville have fungeret fint, hvis det var med var sรธgeord. Variabler ved hjรฆlp af lad er tilgรฆngelige inden for det deklarerede blokomfang, f.eks. er variablen t kun tilgรฆngelig i if-blokken og ikke for hele funktionen.

Ogsรฅ hvis du tilfรฆldigvis erklรฆrer en variabel inde i en funktion, eller for-loop, while-loop, TypeScript skifte blok, vil den kun vรฆre tilgรฆngelig for dig inden for den blok og ingen reference til den uden for blokken, og den vil give en fejl, hvis variablen bruges uden for blokken. Dette er hovedforskellen mellem var og let nรธgleordserklรฆrede variabler.

Erklรฆring af variable ved hjรฆlp af const

Const betyder konstante variable. De ligner ladevariabler, med den eneste forskel er, at nรฅr fรธrst en vรฆrdi er tildelt, kan den ikke รฆndres.

Syntaks:

const name;

Eksempel:

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

Sรฅ brugere kan kun bruge const-variabler i tilfรฆlde, hvor de ved, at de ikke behรธver at รฆndre de tildelte vรฆrdier.

Taster ind TypeScript

TypeScript er et stรฆrkt maskinskrevet sprog, hvorimod javascript ikke er det. En variabel, der har en vรฆrdi defineret som en streng, kan รฆndres til et tal uden problemer i Javascript. Det samme tolereres ikke i TypeScript. I TypeScript, er typen til en variabel kun defineret i starten, og gennem udfรธrelsen skal den bibeholde den samme type, enhver รฆndring af den vil fรธre til en kompileringsfejl under kompilering til javascript.

Fรธlgende er typerne:

  • nummer
  • String
  • Boolesk
  • Enhver
  • Void

nummer

Tager kun heltal, flydende, brรธker osv.

Syntaks:

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

Her er nogle vigtige metoder, som kan bruges pรฅ taltyper:

toFixed() โ€“ det vil konvertere tallet til en streng og vil beholde decimaler givet til metoden.

toString () โ€“ denne metode vil konvertere tal til en streng.

Vรฆrdi af() โ€“ denne metode vil give tallets primitive vรฆrdi tilbage.

til prรฆcision() โ€“ denne metode vil formatere tallet til en specificeret lรฆngde.

Eksempel: med alle strengmetoder

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

String

String: kun strengvรฆrdier

Syntaks:

let str :string = "hello world";

Her er nogle vigtige metoder, som kan bruges pรฅ strengtyper:

  • delt() โ€“ denne metode vil opdele strengen i et array.
  • tegnAt() โ€“ denne metode vil give det fรธrste tegn for det angivne indeks.
  • indeks af() โ€“ denne metode vil give positionen for den fรธrste forekomst for den vรฆrdi, der er givet til den.
  • udskifte () โ€“ denne metode tager 2 strenge, fรธrst den vรฆrdi, der skal sรธges i strengen, og hvis den er til stede vil den erstatte den anden og vil give en ny streng tilbage.
  • Trimme () โ€“ denne metode fjerner hvide mellemrum fra begge sider af strengen.
  • substr() โ€“ denne metode vil give en del af strengen, som vil afhรฆnge af positionen angivet som start og slut.
  • understreng() โ€“ denne metode vil give en del af strengen, som vil afhรฆnge af positionen angivet som start og slut. Tegnet i slutpositionen vil blive udelukket.
  • til Store bogstaver() - vil konvertere strengen til store bogstaver
  • til LowerCase() โ€“ vil konvertere strengen til smรฅ bogstaver.

Eksempel:

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"

Boolesk

Vil acceptere logiske vรฆrdier som sand, falsk, 0 og 1.

Syntaks:

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

Enhver

Syntaks:

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

Variabler erklรฆret vha enhver type kan tage variablen som en streng, tal, matrix, boolean eller void. TypeScript vil ikke kaste nogen kompileringsfejl; dette svarer til de variabler, der er deklareret i JavaManuskript. Brug kun en hvilken som helst type variabel, nรฅr du ikke er sikker pรฅ, hvilken type vรฆrdi, der vil blive knyttet til den pรฅgรฆldende variabel.

Void

Void type bruges mest som en returtype pรฅ en funktion, der ikke har noget at returnere.

Syntaks:

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

TypeScript Array

An Array in TypeScript er en datatype, hvor du kan gemme flere vรฆrdier. Lad os lรฆre, hvordan du deklarerer og tildeler vรฆrdier for Array-operationer i TypeScript.

Siden TypeScript er et stรฆrkt indtastet sprog, skal du fortรฆlle, hvad der vil vรฆre datatypen for vรฆrdierne i et array. Ellers vil den betragte den som en hvilken som helst type.

Erklรฆr og initialiser et array

Syntaks:

let nameofthearray : Array<typehere>

Eksempel

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.

Forskellige mรฅder at fรฅ adgang til elementer fra et array

For at fรฅ elementerne fra et array starter vรฆrdierne fra indeks 0 til lรฆngden af โ€‹โ€‹arrayet.

Eksempel:

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

Du kan ogsรฅ hente elementerne fra et array vha TypeScript forum loop som vist nedenfor:

Ved brug af TypeScript til lรธkke

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

Brug af for-in loop

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

Output:
2016
2017
2018
2019

Brug af for-of-lรธkke

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

Brug for hver slรธjfe

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

TypeScript Array-metoder

TypeScript Array-objekt har mange egenskaber og metoder, som hjรฆlper udviklere med at hรฅndtere arrays nemt og effektivt. Du kan fรฅ vรฆrdien af โ€‹โ€‹en egenskab ved at angive arrayname.property og outputtet af en metode ved at angive array name.method().

lรฆngde ejendom

=> Hvis du vil vide antallet af elementer i et array, kan du bruge egenskaben length.

Reverse metode

=> Du kan vende rรฆkkefรธlgen af โ€‹โ€‹elementer i et array ved at bruge en omvendt metode.

Sorteringsmetode

=> Du kan sortere elementerne i et array ved hjรฆlp af sorteringsmetoden.

Pop metode

=> Du kan fjerne det sidste element i et array ved hjรฆlp af en pop-metode.

Shift metode

=> Du kan fjerne det fรธrste element i et array ved hjรฆlp af shift-metoden.

Push-metode

=> Du kan tilfรธje vรฆrdi som det sidste element i arrayet.

concat metode

=> Du kan forbinde to arrays til et array-element.

Eksempel pรฅ lรฆngdeegenskab

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

Eksempel pรฅ omvendt metode

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"]

Eksempel pรฅ sorteringsmetode

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"]

Eksempel pรฅ pop-metoden

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

Eksempel pรฅ skiftemetode

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

Eksempel pรฅ push-metode

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				
});

Eksempel pรฅ konkat metode

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 i TypeScript

TypeScript er et supersรฆt af JavaScript, sรฅ hvad der er muligt at gรธre i JavaScript er ogsรฅ muligt i TypeScript. Klasse er en ny funktion tilfรธjet fra ES6 og frem, sรฅ tidligere JavaScriptet klassetypefunktionaliteten blev prรธvet ved hjรฆlp af en funktion med prototypefunktionalitet til at genbruge kode. Ved at bruge klasse kan du have vores kode nรฆsten tรฆt pรฅ sprog som java, c#, python osv., hvor koden kan genbruges. Med funktionen af โ€‹โ€‹klasse i TypeScript/JavaScript, det gรธr sproget meget kraftfuldt.

Definer en klasse i TypeScript

Her er en grundlรฆggende klassesyntaks i TypeScript:

class nameofclass {
     //define your properties here

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

Eksempel: Et fungerende eksempel pรฅ 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;
    }
}

I ovenstรฅende eksempel har du en klasse kaldet Elever. Det har egenskaber alder, navn og roll_no.

Konstruktรธr i en TypeScript Klasse

Klassestuderende-eksemplet, vi har defineret ovenfor, det har en konstruktรธr som vist nedenfor:

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

Konstruktรธrmetoden har parametrene alder, navn og roll_no. Konstruktรธren sรธrger for at initialisere egenskaberne, nรฅr klassen kaldes. Ejendommene tilgรฅs vha denne sรธgeord. Eksempel this.age for at fรฅ adgang til egenskaben alder, this.roll_no for at fรฅ adgang til roll_no osv. Du kan ogsรฅ have en standardkonstruktรธr, som vist nedenfor:

constructor () {}

Metoder inde i en TypeScript Klasse

Eksemplet pรฅ klassen Elever er definerede metoder for eksempel getRollNo(), getName(), getAge(), som bruges til at give detaljer om egenskaber roll_no, navn og alder.

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

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

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

Oprettelse af forekomst af klasse i TypeScript

Eksempel:

In TypeScript for at oprette en forekomst af en klasse skal du bruge den nye operator. Nรฅr vi opretter en forekomst af en klasse ved hjรฆlp af ny operator, fรฅr vi objektet, som kan fรฅ adgang til klassens egenskaber og metoder som vist nedenfor:

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

kompilering TypeScript Klasse til JavaScript

Du kan bruge tsc-kommandoen som vist nedenfor til at kompilere til Javascript.

Command: tsc  Students.ts

Udgangen af Javascript kode pรฅ kompilering er som vist nedenfor:

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, konverteres klassen til en selvpรฅkaldt funktion.

Klasse Arv

Klasser kan nedarves ved hjรฆlp af udvide sรธgeord i TypeScript.

Klasse arvesyntaks:

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 vil kunne dele klasse A metoder og egenskaber.

Her er et fungerende eksempel pรฅ en klasse, der bruger arv

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

Du har to klasser, Person og Student. Elevklasse udvider Person, og objektet, der er oprettet pรฅ Student, kan fรฅ adgang til sine egne metoder og egenskaber samt den klasse, det har udvidet.

Lad os nu tilfรธje nogle flere รฆndringer til ovenstรฅende klasse.

Eksempel:

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

De รฆndringer, du har tilfรธjet i forhold til det foregรฅende eksempel, er, at der er en konstruktรธr defineret i klassen Student. Konstruktรธren skal tage de samme parametre som basisklassen og tilfรธje eventuelle yderligere parametre.

In TypeScript du er nรธdt til at kalde super vil alle params som baserne params i den. Dette skal vรฆre det fรธrste, der skal gรธres inde i konstruktรธren. Super vil udfรธre konstruktรธren af โ€‹โ€‹den udvidede klasse.

Fรฅ adgang til modifikatorer i TypeScript

TypeScript understรธtter offentlige, private og beskyttede adgangsmodifikatorer til dine metoder og egenskaber. Som standard, hvis adgangsmodifikatorer ikke er givet, betragtes metoden eller egenskaben som offentlig, og de vil vรฆre let tilgรฆngelige fra klassens objekt.

I tilfรฆlde af private adgangsmodifikatorer er de ikke tilgรฆngelige fra klassens objekt og kun beregnet til at blive brugt i klassen. De er ikke tilgรฆngelige for den nedarvede klasse.

I tilfรฆlde af beskyttede adgangsmodifikatorer er de beregnet til at blive brugt inde i klassen og den nedarvede klasse og vil ikke vรฆre tilgรฆngelige fra klassens objekt.

Eksempel:

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
  • Privat: egenskaber eller metoder kan ikke tilgรฅs af klassens objekt og ogsรฅ den afledte klasse, de er beregnet til at blive brugt internt i klassen.
  • Beskyttet: egenskaber og metoder kan heller ikke tilgรฅs af det oprettede objekt. De er tilgรฆngelige inde fra klassen og tilgรฆngelige for den klasse, der forlรฆnger den.
  • Offentlig: egenskaber og metoder erklรฆres uden nรธgleord. De er let tilgรฆngelige ved hjรฆlp af klassens objekt udefra.

Interface i TypeScript

En af kerneegenskaberne ved TypeScript er grรฆnseflader. Grรฆnsefladen er et sรฆt af en defineret regel, som skal implementeres af den enhed, der bruger den. Entiteten kan vรฆre en klasse, funktion eller variabel. En grรฆnseflade kan bestรฅ af egenskaber og metoder. Du kan definere egenskaber som valgfri ved at bruge "?" syntaks for den pรฅgรฆldende egenskab eller metode. Interfacet tilfรธjer en stรฆrk typekontrol for enhver funktion, variabel eller klasse, der implementerer grรฆnsefladen.

Syntaks for en grรฆnseflade i TypeScript

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

Du har defineret en grรฆnseflade med navnet Dimension, som har egenskaber bredde og hรธjde, og begge har type som en streng.

Nu kan denne grรฆnseflade implementeres af en variabel, en funktion eller en klasse. Her er eksemplet pรฅ variabel implementering af grรฆnsefladen Dimension.

Eksempel:

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

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

Signaturen for grรฆnsefladen Dimension har bredde og hรธjde, og begge er obligatoriske. I tilfรฆlde af, at der under implementering af grรฆnsefladen gรฅr glip af nogen af โ€‹โ€‹egenskaberne, eller typen รฆndres, vil det give en kompileringstidsfejl, mens koden kompileres til javascript.

Ovenstรฅende kode, nรฅr den er kompileret til javascript, ser ud som fรธlger:

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

Lad os nu se, hvordan man bruger en grรฆnseflade med en funktion.

Brug af grรฆnseflade pรฅ en funktion som returtype

Eksempel:

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

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

I ovenstรฅende eksempel er grรฆnsefladen Dimension implementeret pรฅ funktionen getDimension() som returtype. Returtypen af โ€‹โ€‹getDimension() skal matche med egenskaberne og typen nรฆvnt for Interface Dimension.

Den kompilerede kode til Javascript bliver som fรธlger:

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

Under kompilering, hvis returtypen ikke stemmer overens med grรฆnsefladen, vil den give en fejl.

Interface som 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"

Sรฅ ovenstรฅende eksempel har du brugt Interface Dimension som en parameter til funktionen getDimension(). Nรฅr du kalder funktionen, skal du sikre dig, at parameteren, der sendes til den, stemmer overens med den definerede grรฆnsefladeregel.

Den kompilerede kode til Javascript bliver som fรธlger:

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

Klasseimplementeringsgrรฆnseflade

For at gรธre brug af interface med en klasse, skal du bruge nรธgleordet redskaber.

Syntaks for klasse, der implementerer en grรฆnseflade:

class NameofClass implements InterfaceName {
}

Fรธlgende eksempel viser arbejdet med grรฆnsefladen med klassen.

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;
    }
}

I ovenstรฅende eksempel har du defineret grรฆnseflade Dimension med egenskaber bredde og hรธjde bรฅde af typen streng og en metode kaldet getWidth() som har returvรฆrdi som en streng.

Den kompilerede kode til Javascript bliver som fรธlger:

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

Fungerer i TypeScript

Funktioner er et sรฆt instruktioner, der udfรธres for at udfรธre en opgave. I Javascript, det meste af koden er skrevet i form af funktioner og spiller en stor rolle. I TypeScript, du har klasse, grรฆnseflader, moduler, navnerum til rรฅdighed, men stadig spiller funktioner en vigtig rolle. Forskellen mellem funktionen i javascript og TypeScript funktion er returtypen tilgรฆngelig med TypeScript funktion.

JavaScript funktion:

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

TypeScript fungere:

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

I ovenstรฅende funktioner tilfรธjes navnet pรฅ funktionen, parametrene er a1og b1 begge har en type som et tal, og returtypen er ogsรฅ et tal. Hvis du tilfรฆldigvis sender en streng til funktionen, vil den give en kompileringsfejl, mens den kompileres til JavaManuskript.

Ring til funktionen: tilfรธj

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'.

Paramerne a1 og b1 er obligatoriske parametre og vil give en fejl, hvis den ikke modtages pรฅ den mรฅde. Param-typen og returtypen er ogsรฅ meget vigtig og kan ikke รฆndres, nรฅr den fรธrst er defineret.

Valgfri parametre til en funktion

I javascript er alle parametrene til funktionerne valgfrie og betragtes som udefinerede, hvis de ikke er bestรฅet. Men det samme er ikke tilfรฆldet med TypeScript, nรฅr du fรธrst har defineret parametrene, skal du ogsรฅ sende dem, men i tilfรฆlde af at du vil beholde en param valgfri, kan du gรธre det ved at bruge? mod paramnavnet som vist nedenfor:

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.

Bemรฆrk venligst, at de valgfrie parametre kun skal defineres i en funktion til sidst, du kan ikke have den fรธrste parameter som valgfri og anden parameter som obligatorisk. Nรฅr du kalder funktionen med en parameter, vil compileren give en fejl. Sรฅ det er nรธdvendigt at beholde de valgfrie parametre til sidst.

Tildel standardvรฆrdier til parametre

Du kan tildele standardvรฆrdier til parametre som vist nedenfor:

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

I lighed med valgfrie parametre skal standard initialiserede parametre ogsรฅ her holdes i slutningen i en funktion.

Hvileparametre

Du har set hvordan TypeScript hรฅndterer obligatoriske parametre, valgfri parametre og standardvรฆrdien initialiserede parametre. Vil nu tage et kig pรฅ hvileparameter. Hvileparametre er en gruppe af valgfrie parametre, der er defineret sammen, og de er defineret ved hjรฆlp af tre prikker (โ€ฆ) efterfulgt af navnet pรฅ param, som er en matrix.

Syntaks for hvileparametre:

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

Som vist ovenfor defineres hvileparametrene ved hjรฆlp af (...param-navn); resten param er et array med tre prikker foran. Arrayet vil have alle parametrene videregivet til sig. Du kan kalde funktionen, som vist i eksemplet nedenfor:

Eksempel:

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

Pilfunktioner

En pilefunktion er en af โ€‹โ€‹de vigtige funktioner frigivet i ES6, og den er tilgรฆngelig i TypeScript ogsรฅ. Pilfunktions syntaks har en fed pil i sig, pรฅ grund af hvilken funktionen kaldes en pilefunktion.

Pilefunktion Syntaks:

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

Hvad er brugen af โ€‹โ€‹pilefunktionen?

Lad os tage et kig pรฅ eksemplet for at forstรฅ brugen af โ€‹โ€‹pil-funktionen:

Eksempel:

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

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

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

Du har oprettet en anonym funktion, som har en egenskab denne. Score initialisere til 0 og en metode getScore som internt har en setTimeout, og pรฅ 1 sekund trรธster den denne.score. Den trรธstede vรฆrdi giver undefined selvom du har this.score defineret og initialiseret. Spรธrgsmรฅlet her er med this sรธgeord. Funktionen inde i setTimeout har sin egen dette, og den forsรธger at referere scoren internt, og da den ikke er defineret, giver den udefineret.

Det samme kan gรธres ved at bruge pilefunktionen som vist nedenfor:

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

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

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

Du har รฆndret funktionen i setTimeout til en pilefunktion som vist nedenfor:

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

En pilefunktion har ikke sin egen denne defineret, og den deler sin forรฆlder denne, sรฅ variabler erklรฆret udenfor er let tilgรฆngelige ved hjรฆlp af denne inde i en pilefunktion. De er nyttige pรฅ grund af den kortere syntaks sรฅvel som til tilbagekald, hรฆndelseshandlere, indvendige timingfunktioner osv.

TypeScript Enums

TypeScript Enum er et objekt, som har en samling af relaterede vรฆrdier gemt sammen. Javascript understรธtter ikke enums. Det meste af programmeringssprog som Java, C, C++ understรธtninger TypeScript Enum og den fรฅs ogsรฅ med TypeScript ogsรฅ. Enums er defineret ved hjรฆlp af nรธgleordet enum.

Hvordan erklรฆrer man en Enum?

Syntaks:

enum NameofEnum {
   value1,
   value2,
    ..
}

Eksempel: Enum

enum Directions {
North,
South,
East,
West
}

I ovenstรฅende eksempel har du defineret en enum kaldet retninger. Den angivne vรฆrdi er nord, syd, รธst, vest. Vรฆrdierne er nummereret fra 0 for den fรธrste vรฆrdi i enummet og รธges efterfรธlgende med 1 for den nรฆste vรฆrdi.

Erklรฆr en Enum med en numerisk vรฆrdi

Som standard, hvis en enum ikke gives nogen vรฆrdi, betragter den det som et tal, der starter fra 0. Fรธlgende eksempel viser en enum med en numerisk vรฆrdi.

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

Du kan ogsรฅ tildele en startvรฆrdi til enum, og de nรฆste enum-vรฆrdier vil fรฅ de รธgede vรฆrdier. For eksempel:

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

Nu starter enum-vรฆrdien nord med 5, sรฅ syd fรฅr vรฆrdien som 6, รธst = 7 og vest = 8.

Du kan ogsรฅ tildele vรฆrdier efter eget valg i stedet for at tage standardvรฆrdierne. For eksempel:

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

Hvordan fรฅr man adgang til en Enum?

Fรธlgende eksempel viser, hvordan du gรธr brug af Enum i din kode:

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

Den kompilerede kode til javascript er som fรธlger:

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]);

Siden Javascript understรธtter ikke enums, den konverterer enum til en selvpรฅkaldt funktion som vist ovenfor.

Erklรฆr en Enum med en strengvรฆrdi

Du kan tildele strengvรฆrdier efter eget valg, som vist i eksemplet nedenfor:

Eksempel:

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

Den kompilerede kode til javascript er som fรธlger:

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]);

Hvad er modulerne i TypeScript?

Filerne oprettet i TypeScript har global adgang, hvilket betyder, at variabler, der er deklareret i รฉn fil, nemt kan tilgรฅs i en anden fil. Denne globale karakter kan forรฅrsage kodekonflikter og kan forรฅrsage problemer med udfรธrelse under kรธrsel. Du har eksport- og importmodulfunktionalitet, som kan bruges til at undgรฅ globale variable funktionskonflikter. Denne funktion er tilgรฆngelig i JavaScript med ES6-udgivelse og ogsรฅ understรธttet i TypeScript.

Hvorfor har du brug for moduler i TypeScript?

Fรธlgende eksempel viser problemet uden moduler:

Eksempel test1.ts

let age : number = 25;

Du har defineret en variabel alder af typenummer i test1.ts.

Eksempel test2.ts

I test2.ts-filen er du let i stand til at fรฅ adgang til variablen alder defineret i test1.ts og ogsรฅ รฆndre det som vist nedenfor:

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

Sรฅ ovenstรฅende tilfรฆlde kan skabe en masse problemer, da variablerne er globalt tilgรฆngelige og kan รฆndres.

Med Moduler, forbliver koden skrevet for filen og kan ikke tilgรฅs uden for den. For at fรฅ adgang til noget fra filen skal den eksporteres ved hjรฆlp af eksportnรธgleordet. It bruges, nรฅr du รธnsker at variablen, klassen, funktionen eller grรฆnsefladen skal bruges i en anden fil. Importere bruges, nรฅr du ogsรฅ vil have adgang til den eksporterede variabel, klasse eller grรฆnseflade eller funktion. Hvis du gรธr det, forbliver koden skrevet intakt i filen, og selvom du definerer de samme variabelnavne, bliver de ikke blandet sammen og opfรธrer sig lokalt i forhold til den fil, hvor de er deklareret.

Brug af eksport og import

Der er mange mรฅder at eksportere og importere pรฅ. Sรฅ vil diskutere syntaks her, som er mest brugt.

Syntaksen for import og eksport 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"

Her er et fungerende eksempel ved hjรฆlp af eksport og import.

Eksempel:

test1.ts

export let age: number = 25;

Eksporter nรธgleord bruges til at dele aldersvariabel i en anden fil.

test2.ts

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

Import nรธgleord bruges til at fรฅ adgang til alder variabel, og du skal angive filplaceringen som vist ovenfor.

Syntaks for import og eksport 2:

Der er en anden mรฅde at eksportere pรฅ, og import og syntaks for det samme er som vist nedenfor:

export = classname;

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

Nรฅr du bruger eksport = for at eksportere dit modul, skal importen bruge require(โ€œfilsti til modulnavnโ€) for at importere det.

Her er et fungerende eksempel, der viser ovenstรฅende tilfรฆlde:

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;

testKunde.ts

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

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

Modul Loader

Moduler kan ikke fungere alene, sรฅ du skal bruge modulindlรฆser for at lokalisere importafhรฆngighederne, som du har set i TypeScript eksempler vist ovenfor. Den tilgรฆngelige modulindlรฆser er CommonJS for nodejs og Require.js til at kรธre i browseren.

For at kompilere kode ved hjรฆlp af CommonJS-modul, brug fรธlgende kommando:

tsc --module commonjs testCustomer.ts

For at kompilere kode ved hjรฆlp af Requirejs-modulet, brug fรธlgende kommando:

tsc --module amd testCustomer.ts

De afhรฆngige filer vil blive konverteret til js-fil med ovenstรฅende kommando.

Eksempel testCustomer.ts til testCustomer.js ved hjรฆlp af Requirejs

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

Eksempel Customer.ts til Customer.js ved hjรฆlp af 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;
});

For at teste det ved at bruge require.js, skal du oprette en fil kaldet main.js, som har reference til afhรฆngighederne som vist.

Her er mappestrukturen:

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>

Modul Loader

Navneomrรฅder i TypeScript

Namespace er dybest set har en samling af klasser, grรฆnseflader, variabler, funktioner sammen i en fil.

Syntaks for navneomrรฅde

namespace name{

export class {
}

export interface {
}

export const constname;

}

Koden relateret er tilgรฆngelig under รฉt navneomrรฅde.

Namespace arbejdseksempel: 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;
        }
    }
}

Navnet pรฅ navneomrรฅdet er Student Setup, du har tilfรธjet en grรฆnseflade StudDetails , funktion addSpace og en klasse kaldet Student.

Adgang til navneomrรฅde

Fรธlgende er koden, hvor du bruger navneomrรฅdet Studentopsรฆtning.

testStudentSetup.ts

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

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

Klassen, grรฆnsefladen, en funktion, der er tilgรฆngelig i et navneomrรฅde, skal henvises ved hjรฆlp af navnet pรฅ navneomrรฅdets eksempel StudentSetup.addSpace for at fรฅ adgang til funktionen, StudentSetup.Student for at fรฅ adgang til klassen.

Du kan kompilere begge filer til en js som vist nedenfor:

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

Kontroller outputtet i kommandoprompten ved hjรฆlp af nedenstรฅende kommando:

node namespace.js

Det vil vise output som:

The name is: H a r r y

Omgivende erklรฆringer i TypeScript

TypeScript giver dig mulighed for at bruge tredjeparts javascript-filer ved hjรฆlp af ambient-deklaration. Fordelen ved denne funktion er, at du ikke behรธver at omskrive og alligevel bruge alle bibliotekets funktioner i TypeScript.

Ambient syntaks

Sรฅdan erklรฆrer du omgivende modul:

declare module moduleName {
   //code here
}

Den omgivende fil skal gemmes som:

filename.d.ts

For at bruge filen filnavn.d.ts i din .ts skal du henvise til det som:

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

Omgivelsestypedeklarationen i TypeScript vil have en reference til tredjepartsbiblioteket og vil generklรฆre de nรธdvendige funktioner med sin egen type. Overvej for eksempel, at du har et lille javascript-bibliotek, som vist nedenfor:

Third Party JavaScriptfil: testString.js

Eksempel: 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();
    }
};

Du har et objekt kaldet StringChecks, som har funktioner som isString, convertToUpperCase, convertToLowerCase og converToStringBold.

Oprettelse af Ambient-modul i TypeScript

Nu vil der oprettes et ambient-modul, som vil have reference til ovenstรฅende js-funktioner og ogsรฅ tilfรธje typekontrol i henhold til vores krav.

Filnavn: 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;

Du skal definere et modulnavn som TestString og have eksporteret grรฆnseflade StringsFunc.

isString(str: streng): boolesk

=> Dette vil tage param som en streng, og returtypen vil vรฆre boolesk. Nรฅr du bruger i din .ts-fil, hvis du tilfรฆldigvis sender param som et tal eller noget andet end streng, vil det give dig en kompileringsfejl.

convertToUpperCase(str:streng): streng

=> Dette vil tage argument som streng og returnere en streng. Det samme gรฆlder convertToLowerCase(str: streng)
: streng; og convertToStringBold(str: streng): streng
;

Da du i javascript-filen har objektnavnet som StringChecks, skal vi endelig henvise til det samme i .d.ts-filen, hvilket gรธres som:

declare var StringChecks: TestString.StringsFunc;

Brug af Ambient-modul i TypeScript

Nu her er test.ts-filen, hvor vil bruge ambient-filen tstring.d.ts

Eksempel: 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);

Kompiler TypeScript tsc test.ts til 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);

Nu kan du bruge test.js i html-filen og ogsรฅ biblioteksfilen testString.js

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

Dette er output set i konsollen:

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

TypeScript Historie

Lad se vigtige vartegn fra historien om TypeScript:

  • Efter to รฅrs intern udvikling kl Microsoft. TypeScript 0.9, udgivet i 2013
  • Yderligere support til generiske lรฆgemidler TypeScript 1.0 blev udgivet pรฅ Build 2014
  • I juli 2014 kom en ny TypeScript kompileren kom, hvilket er fem gange hurtigere end den tidligere version.
  • I juli 2015, stรธtte til ES6-moduler, navneomrรฅde nรธgleord, for, af support, dekoratรธrer.
  • I november 2016, en tilfรธjet funktion som nรธgle- og opslagstyper af kortlagte typer og hvile.
  • Den 27. marts 2018 understรธtter betingede typer, den forbedrede nรธgle med skรฆringstyper tilfรธjet i TypeScript.

Hvorfor bruge TypeScript?

Her er vigtige fordele/fordele ved at bruge TypeScript

  • Stort og komplekst projekt i JavaScript er vanskeligt at kode og vedligeholde.
  • TypeScript hjรฆlper meget med kodeorganisering og slipper alligevel for de fleste fejl under kompilering.
  • TypeScript understรธtter JS-biblioteker og API-dokumentation
  • Det er valgfrit skrevet scriptsprog
  • TypeScript Kode kan konverteres til almindelig JavaScript kode
  • Bedre kodestrukturering og objektorienterede programmeringsteknikker
  • Giver bedre stรธtte til udviklingstidsvรฆrktรธj
  • Det kan udvide sproget ud over standard dekoratรธrer, asynkron/afvent

Hvem bruger TypeScript?

Her er nogle af de mest almindelige anvendelser af TypeScript:

  • Vinkelholdet bruger TypeScript.
  • NodeJS og NPM installation
  • TypeScript Installation
  • Kompiler TypeScript kode til Javascript
  • Udfรธr kode ved hjรฆlp af Nodejs
  • Udfรธr Javascript i browser
  • Kompiler TypeScript kode til Javascript ved hjรฆlp af EcmaScript-version
  • Du kan nemt kompilere kode skrevet ind TypeScript til JavaScript ved hjรฆlp af NodeJS.
  • Sรฅ til at arbejde med TypeScript du skal fรธrst downloade og installere NodeJS.

Resumรฉ

  • TypeScript er et supersรฆt af JavaManuskript. TypeScript er rent objektorienteret programmeringssprog, der understรธtter klasser, interfaces mv.
  • TypeScript understรธtter alle de frigivne Ecmascript-funktioner, og udviklere kan bruge det samme, mens de koder.
  • Variabler bruges til at gemme vรฆrdier, og vรฆrdien kan vรฆre en streng, tal, boolesk eller et udtryk.
  • In TypeScript, er typen til en variabel kun defineret i starten, og gennem udfรธrelsen skal den bibeholde den samme type, enhver รฆndring af den vil fรธre til en kompileringsfejl under kompilering til javascript.
  • Et array i TypeScript er en datatype, hvor du kan gemme flere vรฆrdier.
  • Klasse er en ny funktion tilfรธjet fra ES6 og frem, sรฅ tidligere JavaScriptet klassetypefunktionaliteten blev prรธvet ved hjรฆlp af en funktion med prototypefunktionalitet til at genbruge kode.
  • TypeScript understรธtter offentlige, private og beskyttede adgangsmodifikatorer til dine metoder og egenskaber.
  • En af kerneegenskaberne ved TypeScript er grรฆnseflader. Grรฆnsefladen er et sรฆt af en defineret regel, som skal implementeres af den enhed, der bruger den.
  • Funktioner er et sรฆt instruktioner, der udfรธres for at udfรธre en opgave.
  • TypeScript Enum er et objekt, som har en samling af relaterede vรฆrdier gemt sammen.

Opsummer dette indlรฆg med: