TypeScript
| TypeScript | |
|---|---|
|
| |
| Grunnleggende data | |
| Paradigmer : | funksjonell , imperativ , objektorientert ( prototyper , klasser ), strukturert , skripting |
| Utgivelsesår: | 2012 |
| Designer: | Microsoft |
| Utvikler: | Anders Hejlsberg , Microsoft |
| Gjeldende versjon | 4.1.3 (15. desember 2020) |
| Skrive : | sterk , svak , and , dynamisk , statisk , eksplisitt , implisitt |
| Påvirket av: | JavaScript , Java , C # |
| Lisens : | Apache-lisens |
| www.typescriptlang.org | |
TypeScript er et programmeringsspråk utviklet av Microsoft som er basert på forslagene til ECMAScript -6-standarden. TypeScript språkkonstruksjoner som klasser , arv , moduler og anonyme funksjoner har også blitt vedtatt i ECMAScript 6.
TypeScript- kompilatoren utviklet av Microsoft kompilerer TypeScript-kode i henhold til ECMA Script 3 (ES3) , eventuelt også i henhold til ECMA Script 5 (ES5) for vanlig JavaScript . Hver JavaScript- kode er derfor også gyldig TypeScript-kode, slik at vanlige JavaScript-biblioteker (som jQuery eller AngularJS ) også kan brukes i TypeScript.
Med moduler støtter TypeScript innkapsling av klasser, grensesnitt, funksjoner og variabler i sine egne navneområder. Det skilles mellom interne og eksterne moduler. Interne moduler er basert på modulspesifikasjonen fra ECMAScript 6, mens eksterne moduler bruker et JavaScript-bibliotek ( AMD eller CommonJS ).
Loggfila kan integreres i ulike byggeledelsesverktøy ved hjelp av plug-ins , inkludert Grunt (grunt-ts), Apache Maven (Loggfila Maven plugin), og Gradle (Loggfila Gradle plugin).
historie
Den første offentlig tilgjengelige versjonen av TypeScript ble utgitt i 2012 etter to års utvikling av Microsoft i versjon 0.8. Kort tid etter at språket ble kunngjort, ble det skryt av Miguel de Icaza . Imidlertid kritiserte han det faktum at det ikke var andre utviklingsmiljøer bortsett fra Microsoft Visual Studio , som ikke var tilgjengelig for Linux og macOS i 2013 . Siden 2013 har det vært plugin-støtte for Eclipse , som ble levert av Palantir Technologies . Et stort antall tekstredigerere og utviklingsmiljøer støtter nå TypeScript. Disse inkluderer Emacs , vim , Sublime Text , WebStorm , Atom og Microsofts egen redaktør Visual Studio Code .
TypeScript 0.9 ble utgitt i 2013 og ga støtte for generiske typer .
TypeScript 1.0 ble presentert på Microsofts interne utviklerkonferanse Build i 2014. Visual Studio fikk også støtte for TypeScript.
I juli 2014 kunngjorde TypeScript-utviklerne en ny kompilator som skulle være fem ganger raskere enn den gamle. Samtidig ble den forrige TypeScript-kildekoden overført fra CodePlex til GitHub .
Versjon 2.0 ble utgitt 22. september 2016, og introduserte forskjellige nye funksjoner. Blant annet ble en valgfri funksjon introdusert for å forhindre at variabler nullinitialiseres som standard . Dette bør føre til færre nullpekere unntak.
Versjon 3.0 ble utgitt 30. juli 2018. Spesielt bemerkelsesverdig er den nye primitive typen unknown. Sammen med void(enhetstypen) og never(den tomme typen) fullfører den grensene til typehierarkiet: unknowner en universell type; ethvert objekt kan tilordnes til en av disse variablene, og følgelig kan unknowningenting forventes fra en verdi. TypeScript krever deretter en påstand eller sjekker. I motsetning til dette er det anyogså en universell type, men TypeScript lar verdiene brukes direkte, selv om det faktisk ikke er noen informasjon om dem. Dette er unknownikke noe mer enn den typesikre ekvivalenten any.
Egenskaper
TypeScript utvider ECMAScript 6-språket med følgende funksjoner:
- Metodesignatur
- Skriv inn slutning
- Skriv sletting
- Grensesnitt
- Oppregningstype
- Generisk programmering
- Navneplasser
- Tuple
- Asynkronisering / Venter
Følgende elementer ble lagt til gjennom en bakport av ECMAScript 2015:
Kompatibilitet med JavaScript
TypeScript er et strengt supersett av ECMAScript 2015, som i seg selv er et supersett av ECMAScript 5, som ofte settes i referanse med JavaScript. Et JavaScript-program er derfor også et gyldig TypeScript-program. Dette betyr at TypeScript kan bruke JavaScript uten problemer. Kompilatoren bruker normalt ECMAScript 5, men det er også muligheten til å bruke konstruksjoner fra ECMAScript 3 eller 2015.
TypeScript tilbyr muligheten til å bruke eksisterende JavaScript-kode og kjente JavaScript-biblioteker.
Metodesignatur
TypeScript gir metodesignaturer som gjør det mulig å verifisere metoder under kompilering. Dette er valgfritt og kan ignoreres.
function add(left: number, right: number): number {
return left + right;
}
Kommentarene for de primitive typene er number, booleanog string.
Klasser
TypeScript støtter ECMAScript 2015-klasser som kan bruke valgfrie metodesignaturer:
class Person {
private name: string;
private age: number;
private salary: number;
constructor(name: string, age: number, salary: number) {
this.name = name;
this.age = age;
this.salary = salary;
}
toString(): string {
return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4
}
}
Generisk programmering
TypeScript støtter generell programmering . Dette er et eksempel på en identitetsfunksjon:
function doSomething<T>(arg: T): T {
return arg;
}
design
TypeScript kommer fra skriptspråket JavaScript og tar sikte på å avhjelpe manglene i utviklingen av store applikasjoner, som Microsoft selv startet. Utfordringen med å håndtere den komplekse JavaScript-koden førte til etableringen av et tilpasset verktøy for å forenkle utviklingen av disse komponentene.
TypeScript-utviklerne lette etter en løsning som ikke kompromitterer kompatibiliteten med JavaScript eller JavaScript-plattformens uavhengighet. Med kunnskapen om at ECMAScript ønsket å støtte klassebasert programmering i fremtiden, ble TypeScript utviklet etter dette prinsippet. Det resulterte i en JavaScript-kompilator med noen utvidelser som oversetter koden til JavaScript.
ECMAScript 2015-støtte
TypeScript la til støtte for ECMAScript 2015-standarden.
historie
| Versjonsnummer | Utgivelsesdato | Endringer |
|---|---|---|
| 0,8 | 1. oktober 2012 | Første publikasjon |
| 0,9 | 18. juni 2013 | Generiske uttrykk, overbelastning av konstante parametere, enum |
| 1.1 | 6. oktober 2014 | Ytelsesforbedringer |
| 1.3 | 12. november 2014 |
protected Tilgangsmodifikator , tuppeltyper
|
| 1.4 | 20. januar 2015 | Forbundstyper letog consterklæringer, malstrenger, typevakter, typealiaser
|
| 1.5 | 20. juli 2015 |
ES6- moduler, namespacenøkkelord, for..ofstøtte, dekoratør
|
| 1.6 | 16. september 2015 | JSX-støtte, krysstyper, lokale typedeklarasjoner, abstrakte klasser og metoder, brukerdefinerte vaktfunksjoner |
| 1.7 | 30. november 2015 | Støtte for asyncogawait
|
| 1.8 | 22. februar 2016 | Begrensninger Generics, analyse av kontrollflytfeil, strenge bokstavelige typer, allowJs
|
| 2.0 | 22. september 2016 |
nullog undefinedforebyggende typer, kontroll strømningsbasert typeanalyse, diskriminerte fagforeningstyper, nevertype, readonlynøkkelord,this
|
| 2.1 | 8. november 2016 |
keyof og oppslagstyper, kartlagte typer, gjenværende og spredende egenskaper for objekter
|
| 2.2 | 22. februar 2017 | Innblandingstimer, objecttype
|
| 2.3 | 27. april 2017 |
async Iterasjon, generiske standardparametere, strengt alternativ
|
| 2.3 | 27. juni 2017 | dynamiske importuttrykk, strengensum, forbedret arv for generiske datatyper, streng kontravarians for tilbakeringingsparametere
|
| 2.5 | 31. august 2017 | valgfrie fangstklausulvariabler for unntak |
| 2.6 | 31. oktober 2017 | strenge funksjonstyper |
| 2.7 | 31. januar 2018 |
const-navngitte egenskaper, tupler med fast lengde
|
| 2.8 | 27. mars 2018 | Betingede typer, forbedring av keyofkombinert med krysningstyper
|
| 2.9 | 31. mai 2018 | Støtte av numberog symbolnavngitte eiendommer med keyofog endelige kart. import(...)-Typer.
|
| 3.0 | 30. juli 2018 | Tupler som restparametere, spredningsuttrykk for tupler, generiske restparametere, valgfrie elementer i tupler, unknownsom universelle typer (se også typeteori ), defaultPropsi JSX |
| 3.1 | 27. september 2018 | Kartlagte tupler og matrityper |
| 3.2 | 30. november 2018 | Strammere kontroll over bind, callogapply
|
| 3.3 | 31. januar 2019 | Løse regler for metoder for tilkoblingstyper, trinnvise bygg for felles prosjekter |
| 3.4 | 29. mars 2019 | Forbedringer av trinnvise bygg, sammensatte prosjekter, inferens, skrivebeskyttede matriser, typekontroll for globale variabler og forskjellige andre |
| 3.5 | 29. mai 2019 |
Omit som en ny integrert type |
| 3.6 | 28. august 2019 | Strengere iterator- og generatorfunksjoner, støtte for Unicode for identifikatorer |
| 3.7 | 5. november 2019 | Valgfri kjetting, nullish coalescing operator, påstandsfunksjoner, forbedret støtte for metoder som kommer tilbake never, og mange flere. |
| 3.8 | 20. februar 2020 | Bare import og eksport, private felt, toppnivå awaitog mange flere endringer. |
| 3.9 | 12. mai 2020 | Bygg hastighetsforbedringer, @ts-expect-errorkommentarer, redigeringsforbedringer og andre endringer. |
| 4.0 | 20. august 2020 | Variable tupler , navn på elementer i en tuple, bedre JSX-støtte |
| 4.1 | 19. november 2020 | Sammenkobling av strengtyper |
weblenker
- DefinitelyTyped : Samling av TypeScript-grensesnitt for populære JavaScript-rammer
Individuelle bevis
- ↑ Utgivelse 4.1.3 . 15. desember 2020 (åpnet 18. desember 2020).
- ↑ ECMAScript Wiki. (Ikke lenger tilgjengelig online.) Arkivert fra originalen 22. mai 2008 ; åpnet 3. april 2013 . Info: Arkivkoblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.
- ↑ a b TypeScript. Hentet 3. april 2013 (engelsk, TypeScript-hjemmesiden).
- ↑ En introduksjon til TypeScript modulsystem. Hentet 4. februar 2014 (engelsk, artikkel om TypeScript modulsystem).
- ↑ grynt-ts. Hentet 21. februar 2014 .
- ↑ TypeScript Maven-plugin. Hentet 21. februar 2014 .
- ↑ TypeScript Gradle Plugin. Hentet 21. februar 2014 .
- ↑ IDG News Service ansatte: Microsoft forsterker Javascript for storstilt utbygging . I: InfoWorld . ( infoworld.com [åpnet 11. juli 2018]).
- ↑ Kunngjøring av TypeScript 1.0 . ( microsoft.com [åpnet 11. juli 2018]).
- ↑ @ COPYRIGHT @: TypeScript: First Impressions - Miguel de Icaza. Tilgang 11. juli 2018 .
- ↑ Matt Baxter-Reynolds: Microsoft TypeScript: Kan faren til C # redde oss fra tyranniet til JavaScript? | ZDNet . I: ZDNet . ( zdnet.com [åpnet 11. juli 2018]).
- ↑ Julia Schmidt: TypeScript-støtte for Eclipse. Hentet 11. juli 2018 (tysk).
- ↑ TypeScript . I: Eclipse Plugins, Bundles and Products - Eclipse Marketplace . ( eclipse.org [åpnet 11. juli 2018]).
- ↑ Skriv Strong / atom-typescript. Tilgang 11. juli 2018 .
- ↑ TypeScript. Hentet 11. juli 2018 .
- ↑ Arbeide med TypeScript i Visual Studio 2012 . I: Dr. Dobb . ( drdobbs.com [åpnet 11. juli 2018]).
- ^ Ny kompilator og flytter til GitHub . ( msdn.com [åpnet 11. juli 2018]).
- ↑ TypeScript, Microsofts JavaScript for store applikasjoner, når versjon 2.0 . I: Ars Technica . ( arstechnica.com [åpnet 11. juli 2018]).
- ↑ Microsoft forhåndsviser nytt JavaScript-lignende programmeringsspråk TypeScript. I: TechCrunch. Hentet 18. mai 2020 (amerikansk engelsk).
- ^ Vinklet. Hentet 18. mai 2020 .
- ↑ skrevet inn Javascript på noen skala. Hentet 18. mai 2020 .
- ↑ Kunngjør TypeScript 0.9. 18. juni 2013, Hentet 18. mai 2020 (amerikansk engelsk).
- ↑ Håndbok - Generiske. Hentet 18. mai 2020 .
- ^ Scott Hanselman: Hva er TypeScript og hvorfor med Anders Hejlsberg. Hentet 18. mai 2020 .
- ↑ kexugit: TypeScript: JavaScript-utvikling i applikasjonsskala. Hentet 18. mai 2020 (amerikansk engelsk).
- ↑ Kunngjør TypeScript 0.9. 18. juni 2013, Hentet 19. januar 2021 (amerikansk engelsk).
- ↑ https://www.typescriptlang.org/docs/handbook/release-notes/typescript-1-7.html åpnet 1. august 2019
- ↑ Kunngjøring av TypeScript 3.0. 30. juli 2018; Hentet 19. januar 2021 (amerikansk engelsk).
- ↑ Kunngjør TypeScript 3.5. 29. mai 2019, åpnet 19. januar 2021 (amerikansk engelsk).
- ↑ Kunngjøring av TypeScript 3.6. 28. august 2019, åpnet 19. januar 2021 (amerikansk engelsk).
- ↑ Kunngjøring av TypeScript 3.7. 5. november 2019, åpnet 2. mars 2020 (amerikansk engelsk).
- ↑ Kunngjøring av TypeScript 3.8. 20. februar 2020, åpnet 2. mars 2020 (amerikansk engelsk).
- ↑ Kunngjør TypeScript 3.9. 12. mai 2020, åpnet 14. mai 2020 (amerikansk engelsk).
- ↑ Kunngjør TypeScript 4.0. 20. august 2020, åpnet 19. januar 2021 (amerikansk engelsk).
- ↑ Kunngjøring av TypeScript 4.1. 19. november 2020, åpnet 19. januar 2021 (amerikansk engelsk).