TypeScript er en av en gruppe språk som bruker Javascript. Runtime som utførelsesmiljø: .Ts-filer som inneholder typeskriptkode, er samlet inn i normalt JavaScript, som deretter kan kjøres av nettleseren.
Jeremy Ashkenas gjorde først dette konseptet populært med sitt kaffe, men dessverre var det relativt terse syntaks vanskelig å lære for utviklere kjent med C # eller Visual Basic.
Som Microsoft utvidet seg til Web 2.0-teknologier, valgte det å ta inspirasjon fra Jeremy Ashkenas. På grunn av evnen til Visual Studio, kan utviklere bare hacke bort mens de drev ut fra de ulike språkforlengelsene.
Tescript er ikke begrenset til statisk skriving: Den leveres også med en rekke avanserte funksjoner som lar deg simulere objektorienterte programmeringsparadigmer på nettet. Denne korte guiden tar deg gjennom noen av sine viktige funksjoner. Hvis språket appellerer til deg, kan mer informasjon læres på fly.
Selv om typekrypter kan også brukes på Linux eller MacOS, holder vi oss til Microsofts offisielle IDE. Last ned den gratis samfunnsutgaven av Visual Studio 2017 fra Microsoft, her , og sørg for å merke ASP.NET nyttelast under distribusjon.
På grunn av den raske løsningen kadence av typekrav, må visuelt studio utvides med en SDK-modul, som kan lastes ned fra Microsoft-siden her . Bare kjør installatøren som om det var et standard Windows-program.
Det ville ikke være Microsoft hvis det ikke var noen ekstra stresset involvert: Mens SDK oppgraderer din Visual Studio-installasjon, blir den faktiske TSC-kompilatoren ikke lagt til din kommandolinje. Dette problemet er best løst ved å bruke Node.Js NPM-pakkeadministrator på kommandolinjen.
PS C: \ Brukere \ Tamha \ Nedlastinger & GT; NPM Installer -G TypeCript
C: \ brukere \ tamha \ appdata \ roaming \ npm \ tsc - & gt; C: \ Brukere \ Tamha \ AppData \ Roaming \ npm \ node_moduler \ typescript \ bin \ tsc
C: \ brukere \ tamha \ appdata \ roaming \ npm \ tsServer - & gt; C: \ Users \ tamha \ applata \ roaming \ npm \ node_modules \ typescript \ bin \ tsServer
C: \ Brukere \ Tamha \ AppData \ Roaming \ npm
Visual Studio forventer å jobbe i en løsning-sentrert prosess: Mens interessant, er dette mindre enn ideelt for våre behov. I stedet lager du en fil som heter Worker.ts og plasser den på et passende sted i filsystemet ditt. Åpne den ved å dra den til Visual Studio, og slipp den inne i verktøylinjen på toppen. Deretter endrer innholdet til å inkludere følgende kode:
Funksjon Sayoi () {
våken ("oi!");
}
Sayoi ();
Som nevnt i introduksjonen, kan en .TS-fil ikke gjøre mye på egen hånd. På grunn av det, fortsett å lage en fil som heter index.html, som må være plassert i samme mappe. Deretter legger du til skjelettkoden vist som følger med dette trinnet. Den laster kompilatorens utgang, og kjører det som om det var noe annet Javascript.
& lt; html & gt;
& lt; head & gt;
& lt; script src = "worker.js" & gt; & lt; / script & gt;
& lt; / head & gt;
& lt; body & gt; & lt; / body & gt;
& lt; / html & gt;
Det neste trinnet innebærer manuell kompilering av .TS-filen. Åpne PowerShell, og skriv inn TSC-kommandoen etterfulgt av navnet på inngangsfilen. Som standard vil utdatafilen dele basisfilnavnet, men vil ha en forlengelse av .js i stedet for .ts. Til slutt åpner du index.html-filen i en nettleser for å bevise utseendet på meldingsboksen.
PS C: \ Brukere \ Tamha \ Nedlastinger & GT; TSC. \ WORKER.TS
Så langt har TightScript gjort litt mer enn å fungere som et mer komplekst JavaScript-miljø. Det neste trinnet innebærer å aktivere støtten til statisk skriving: den gjør det mulig for kompilatoren å utføre statisk analyse av parametere, og holde ut ugyldige verdier. For dette er det nødvendig med et sett med typer - grunnleggende typer er oppført i tabellen ovenfor, mens klassene vil bli diskutert senere.
Typercript Variable Type-oppgaver finner sted via 'A:' plassert etter variabelenavnet. La oss endre OI-funksjonen for å ta et nummer, og la oss passere i en streng i stedet. Til slutt, påberope TSC-kompilatoren igjen for å feste øynene dine på feilmeldingen som er vist i skjermbildet for skjermbildet - Visual Studio, for øvrig, vil også markere den aktuelle linjen.
Funksjon Sayoi (Whattosay: Nummer) {
våken (Whattosay);
}
Sayoi ("Hei");
JavaScript-implementerer Objektorientering via prototyping: En type kode som er uvanlig i. NET og C / C ++ verdener. TESTICRIPT løser dette problemet ved å tillate opprettelsen av klasser - en prosess som vises i stikket som følger med dette trinnet.
Klasse Tenk deg {
Offentlig MyResult: Nummer;
Offentlig Mya: Nummer;
Offentlig MYB: Nummer;
Konstruktør (_A: Nummer, _b: Nummer)
{
This.Myresult = _A + _B;
this.mya = _a;
}
}
Normalt brukes det offentlige attributtet til å erklære at et element i et program skal være tilgjengelig fra utsiden. Når det brukes som en konstruktørparameter, instruerer den i stedet typekryptens kompilator for å lage lokale felt med de samme navnene.
Klasse Tenk deg {
Offentlig MyResult: Nummer;
// offentlig MYA: Nummer;
Constructor (offentlig MYA: Nummer, Public _B: Nummer)
{
this.myresult = mya + _b;
this.mya = mya;
}
}
La oss utvide vår eksempelklasse ved å gi den en metode som får tilgang til verdiene som er lagret i Myresult og Mya, og utdata dem på skjermen. Endelig brukes den nye parameteren til å skape en forekomst av klassen - den brukes til å påkalle metoden.
Klasse Tenk deg {
Offentlig MyResult: Nummer;
. . .
Offentlig Saidomething (): Void {
våken (denne .myresultet);
}
}
La Myimagine: Tenk deg = Ny Imagine (2, 2);
Myimagine.Sayomething ();
Tytercripts språkdesign er ment å redde utviklere så mye innsats som mulig. En fin funksjon er auto-populasjonen av parametere som er opprettet ved hjelp av snarveien vist.
Klasse Tenk deg {
Offentlig MyResult: Nummer;
Constructor (offentlig MYA: Nummer, Offentlig MYB: Nummer)
{
this.myresult = mya + myb;
}
Offentlig Saidomething (): Void {
våken (dette.mya + "" + denne.MYB);
}
}
En av kjernefasen av objektorientert programmering innebærer å basere klasser på toppen av hverandre. Avledede klasser kan da overdra seg innholdet i basenklassen, noe som fører til fleksibelt justerbare klassehierarkier.
Class Future Extends Tenk deg
{
Offentlig Saidomething (): Void {
konsoll.log (dette.mya);
}
}
Kodeutklippet fra ovenfor utvidet den forestillede klassen med et underelement som heter Fremtid. Fremtiden varierer fra å forestille seg at dens regnehjelpsmetode, som blir mer utviklet, sender en melding i nettleserenes kommandolinje.
La Myimagine: Tenk deg = Ny fremtid (2, 2);
myimagine.Sayomething ();
La myfuture: Future = Ny fremtid (9, 9);
myfuture.Sayomething ();
Med det kan den faktiske koden testes. Når du kjører, vil nettleserkonsollen inneholde to påkallinger av fremtid - den avanserte klassen holder egenskapene selv når de påberopes som en forestilling.
Eksponering av medlemsvariabler med den offentlige modifikatoren er upopulær: Det tar imot mest kontroll av hvilke brukere som gjør med variabelsens innhold. Typecript Accessors lar deg jobbe rundt dette problemet på en måte som ligner på tradisjonell OOP. Vær oppmerksom på at skrivebeskyttet medlemmer også støttes, men at bruken av denne funksjonen krever aktivering av ECMAScript5-støtte.
Offentlig _Mycache: String;
Få fullcache (): streng {
returnere dette._mycache;
}
Angi fullcache (newx: streng) {
hvis (newx == "hei") {
this._mycache = newx;
}
ellers {
konsoll.log ("Feil data!");
}
}
Evnen til å skape komplekse arvehierarkier vil motivere utviklere til å prøve lykken på abstrakte klasser. TypeScript har også dekket i den forbindelse - eksemplet som følger med dette trinnet, skaper en klasse med et abstrakt og et ekte medlem. Å forsøke å instantiere den abstrakte klassen fører direkte til en kompilatorfeil.
Abstrakt klasse Tenk deg {
Offentlig MyResult: Nummer;
Abstrakt Sayname (): Void;
Constructor (offentlig MYA: Nummer, Offentlig MYB: Nummer) {
this.myresult = mya + myb;
}
Offentlig Saidomething (): Void {
våken (dette.mya + "" + denne.MYB);
}
}
Klasse Future Extends forestiller deg {
. . .
offentlig sayname () {
Console.log ("Hei");
}
}
Etter hvert som objektstrukturer blir mer komplekse, finner utviklere ofte seg overfor situasjoner der en klasse implementerer flere biter av logikk. I så fall gir et grensesnitt til en fin løsning - eksemplet viser hva du kan forvente.
grensesnitt datapainterface {
felt: nummer;
arbeidermetode (): ugyldig;
}
Som i tilfelle av klassen ovenfor, gjør et grensesnitt oss ikke bra hvis vi ikke kan bruke den. Heldigvis er implementeringen ikke særlig vanskelig: Vær oppmerksom på at grensesnittforfattere kan, dessuten, erklære deler av deres skaperverk for å være valgfrie.
Klassearbeider implementerer DATAINTERFACE {
felt: nummer;
arbeidermetode (): ugyldig {
kaste ny feil ("metode ikke implementert.");
}
}
Ttescript-kompilatoren håndhever streng variabel gyldighetskontroll. Når du arbeider med en lagringsklasse, lar generikere deg la sluttbrukeren bestemme typen som skal håndteres. Videre tillater typekryptering også andre generiske elementer som funksjoner, som vist i (tautologisk) kastet fra dokumentasjonen.
// Generisk funksjon
Funksjonsidentitet (Arg: Nummer): Nummer {
returnere arg;
}
// generisk klasse
klasse genericnummer & lt; t & gt; {
Zerovalue: T;
Legg til: (x: t, y: t) = & gt; T; }
Statsmaskiner og lignende elementer har stor fordel fra å ha en måte å begrense en variabel for å lagre noen veldefinerte stater. Dette kan oppnås ved hjelp av ENUM-datatype:
enum parserstate {
Tomgang = 1,
Read0,
Les1.
}
Klasse forestiller seg {
Offentlig mystat: Parserstate;
Constructor (offentlig MYA: Nummer, Offentlig MYB: Nummer)
{
this.mystate = parserstate.idle;
Dekker et språk som komplisert som typekrypter i en enkelt artikkel er nesten umulig. Se på Tescript Site eksempler for å finne ut mer om språkbindinger.
Denne artikkelen ble opprinnelig publisert i utgave 266 Webdesigner , Creative Web Design Magazine - tilbyr ekspert opplæringsprogrammer, banebrytende trender og gratis ressurser. Kjøp problem 266 her eller Abonner på webdesigner her .
Spesielt juletilbud: Spar opptil 49% på et abonnement på webdesigner for deg eller en venn til julen. Det er et begrenset tilbud, så flytte raskt ...
Relaterte artikler:
[1. 3] (Bilde Kreditt: Facebook) Denne Instagram Reels Tutorial vil få deg til å bruke videofunksjonen som en proff...
Hvis du har mestret Hvordan tegne en hund , du vil bli tilgitt for å tro at du enkelt ville kunne tegne en ulv også. Mens du er i stand ti..
Det trenger liten introduksjon, men Affinity Designer er en serie med Vector Art Redigeringsverktøy tilgjengelig for Mac / Windows og nå også på iPad. . Dette Grafi..
[1. 3] Side 1 av 2: Ulike typer frontend tester (og når du skal bruke dem) ..
[1. 3] Flytt over YouTube ... med & lt; video & gt; element og litt Javascript. , Du kan begynne å lage di..
[1. 3] Side 1 av 2: Side 1 Side 1 Side 2 ..
[1. 3] Med denne masterclassen vil vi forsøke å komme inn i hodet til Monet litt, så vi kan tenke og male i sin stil. Men ikke ..
[1. 3] Denne opplæringen vil ta en titt på hvordan du kan lage en flytende sprut, eller kroneffekt, og kan brukes til å lage sp..