close

TypeScript

Hoppa till navigering Hoppa till sökning
Programmeringsspråk TypeScript
TypeScript Logo.png
FörfattareAnders Hejlsberg ,
Microsoft
Ursprungsdatum1 oktober 2012
Senaste versionen4.7.4 (17 juni 2022) [1]
AnvändandeGenerell mening
ParadigmMultiparadigm : scripting , objektorienterad , strukturerad , imperativ
SkriverMedel
Vanliga tilläggts och tsx
Påverkad avJavaScript , Java , C #
Referensimplementering
Operativ systemWindows , Linux , macOS
TungaFlerspråkig
LicensApache 2.0
Hemsidawww.typescriptlang.org/

TypeScript är ett programmeringsspråk med öppen källkod utvecklat av Microsoft . Det är ett JavaScript- tillägg som baserar sina funktioner på ECMAScript 6; projektledare är Anders Hejlsberg . [2] [3] [4] [5]

Språket utökar syntaxen för JavaScript så att alla program som är skrivna i JavaScript också kan arbeta med TypeScript utan några ändringar. Den designades för utveckling av stora applikationer och är avsedd att kompileras till JavaScript för att tolkas av vilken webbläsare eller app som helst . [6]

Origins

TypeScript uppstår från det växande behovet av ett front-end- språk för storskalig JavaScript-applikationsutveckling och behovet av säkerhet och robusthet, både av interna Microsoft-utvecklare och av oberoende kunder och utvecklare. [7]

Funktioner

TypeScript är ett språk som utökar JavaScripts befintliga struktur genom att lägga till eller göra flera av dess funktioner mer flexibla och kraftfulla:

Semantiskt är TypeScript väldigt likt JScript .NET, en annan implementering av Microsofts ECMA-262-standard.

Skrivet anteckning

TypeScript har ett typanteckningssystem som låter dig kontrollera typer vid kompilering. Den här funktionen kan ignoreras om du vill använda klassiskt dynamiskt JavaScript.

funktion add (vänster: nummer, höger: nummer): nummer {
     gå tillbaka vänster + höger;
}

De anteckningar som är tillgängliga för primitiva typer är number:, booleanoch string. Svagt eller starkt typad, strukturerna är av typ any(vilken som helst).

Typkommentarer kan exporteras till en deklarationsfil för att ge typinformation till TypeScript-skript som använder stödjande bibliotek som Node.js och jQuery .

Det är möjligt att lägga till komplexa kommentarer till initieringen av en variabel.

offentlig  struktur :  {  namn : sträng ,  ålder : nummer ,  lön : nummer ,  kontakt : sträng  |  nummer  }  =  {
    namn :  'Mario' ,
    ålder : 42 ,
    lön : 1300 , -
    kontakt : 2 + '000'
}

Stöd för ECMAScript 6

TypeScript lägger till stöd för funktioner som föreslagits i Harmony- versionen av JavaScript [8] som finns i ECMAScript 6-standarden.

De stödda konstruktionerna är:

  • Klasser (med arv)
  • Blanketter
  • Syntax för anonyma funktioner

Redan innan standarden var helt definierad hade Microsoft sagt att de ville fortsätta att utveckla funktionerna i TypeScript för att hålla dem i linje med den föreslagna standarden.

Klasser

TypeScript stöder klasser som definieras i ECMAScript 6-standarden, och integrerar stöd för maskinskrivna anteckningar.

klass  Person  {
    privat  ålder : antal ;
    privat  lön : antal ;

    konstruktör ( privat  namn : sträng ,  ålder : nummer ,  lön : nummer )  {
        detta . ålder  =  ålder ;
        detta . lön  =  lön ;
    }
    
    toString () :  string  {
        returnera  `Namn: $ { detta . name } , Age: ( $ { this . age } ), Lön: ( $ { this . salary } ) ` ;
    }
}

Versionshistorik

Versionsnummer Utgivningsdatum Betydande förändringar
0,8 1 oktober 2012
0,9 18 juni 2013
1.0 12 april 2014
1.1 6 oktober 2014 prestanda förbättringar
1.3 12 november 2014 protected, typer av tupel
1.4 20 januari 2015 fackföreningstyper letoch deklarationer const, mönstersträngar, skyddstyp, aliastyp
1.5 20 juli 2015 ES6-moduler, nyckelord namespace, support for..of, dekoratörer
1.6 16 september 2015 JSX-stöd, korsningstyper, lokala typdeklarationer, abstrakta klasser och metoder, användardefinierade typskyddsfunktioner
1.7 30 november 2015 asyncOchawait
1.8 22 februari 2016 generiska begränsningar, kontrollflödesanalysfel, bokstavliga strängtyper,allowJs
2.0 22 september 2016 Null och odefinierade medvetna typer, kontrollflödesbaserad typanalys, diskriminerade fackföreningstyper,, nevernyckelord readonly,this
2.1 8 november 2016 keyofoch typer av forskning, kartlagda typer, diffusion och resten av objekt,
2.2 22 februari 2017 blandade klasser,object
2.3 27 april 2017 async, standardinställningar för generiska parametrar, strikt alternativ
2.4 27 juni 2017 dynamiska importuttryck, stränguppräkningar, förbättrad slutledning för generika, strikt kontravarians för callback-parametrar
2.5 31 augusti 2017 valfria catch-klausulvariabler
2.6 31 oktober 2017 typer av strikta funktioner
2.7 31 januari 2018 egendom med konstant namn, fast längd tupler
2.8 27 mars 2018 villkorliga typer, förstärkta med korsningstyperkeyof
2.9 14 maj 2018 stöd för symboler och numeriska bokstaver i nycklar och mappade objekttyper
3.0 30 juli 2018 projektreferenser, utvinning och spridning av parameterlistor med tuplar
3.1 27 september 2018 tupeltyper och mappbara arrayer
3.2 30 november 2018 strängare kontroller för binda, ringa och tillämpa
3.3 31 januari 2019 avslappnade regler för metoder för sammanfogning, inkrementella byggen för sammansatta projekt
3.4 29 mars 2019 snabbare inkrementella byggnader, typinferens från generiska funktioner, skrivskyddad modifierare för arrayer, konst-påståenden, global typkontrollthis
3.5 29 maj 2019 snabbare inkrementella konstruktioner, utelämnande av mediatyp, förbättrade överliggande egenskaperskontroller i sammanslagningstyper, smartare kontroll av sammanslagningstyper
3.6 28 augusti 2019 Tätare generatorer, mer exakt arrayspridning, bättre Unicode-stöd för identifierare
3.7 5 november 2019 Valfri kedja, nollkoalescens
3.8 20 februari 2020 Skriv endast importer och exporter, ECMAScript privata fält, vänta på första nivån
3.9 12 maj 2020 Förbättringar i slutledning, hastighetsförbättringar
4.0 20 augusti 2020 Variabla tuppeltyper, märkta tupelelement
4.1 19 november 2020 Modellera bokstavstyper, nyckelombildning i mappade typer, rekursiva villkorstyper
4.3 12 maj 2021 Separata skrivtyper på egenskaper, förbättringar av strängtypen
4.4 beta 1 juli 2021 Tillståndskontrollflödesanalys med alias
4.4 26 augusti 2021 Standardtyp okänd för att fånga fel. Unionstyper återgivna exakt som skrivna. Statiska block inom klasser.

Anteckningar

Externa länkar