Programavimas

Kas yra „TypeScript“? Tvirtai įrašytas „JavaScript“

Kas yra „TypeScript“? Apibrėžtas „TypeScript“

„TypeScript“ yra populiarios „JavaScript“ programavimo kalbos variantas, pridedantis keletą svarbiausių įmonės plėtrai svarbių funkcijų. Visų pirma, „TypeScript“ yra stipriai spausdinta - ty programuotojas gali paskelbti, kad kintamieji ir kitos duomenų struktūros yra tam tikro tipo, pvz., Eilutės ar loginės, ir „TypeScript“ patikrins jų reikšmių pagrįstumą. Tai neįmanoma naudojant „JavaScript“, o tai yra laisvai spausdinta.

Stiprus „TypeScript“ spausdinimas suteikia galimybę naudotis daugybe funkcijų, padedančių kūrėjams efektyviau veikti, ypač kai kalbama apie dideles įmonės masto kodų bazes. „TypeScript“ yra kompiliuojamas, o ne interpretuojamas kaip „JavaScript“, o tai reiškia, kad klaidas galima sugauti prieš vykdymą; IDE, atliekantys foninį dalinį kompiliavimą, gali pastebėti tokias klaidas per kodavimo procesą.

Nepaisant šio pagrindinio skirtumo nuo „JavaScript“, „TypeScript“ vis tiek galima vykdyti bet kur, kur gali veikti „JavaScript“. Taip yra todėl, kad „TypeScript“ kompiliuoja ne dvejetainį vykdomąjį failą, o standartinį „JavaScript“. Nerkime norėdami sužinoti daugiau.

„TypeScript“ ir „JavaScript“ 

„TypeScript“ yra a superset „JavaScript“. Nors bet koks teisingas „JavaScript“ kodas yra teisingas „TypeScript“ kodas, „TypeScript“ taip pat turi kalbos funkcijų, kurios nėra „JavaScript“ dalis. Ryškiausias „TypeScript“ unikalus bruožas - tas, kuris suteikė „TypeScript“ pavadinimą - yra, kaip pažymėta, tvirtas spausdinimas: „TypeScript“ kintamasis yra susietas su tipas, kaip eilutė, skaičius ar loginė reikšmė, nurodanti kompiliatoriui, kokius duomenis jis gali laikyti. Be to, „TypeScript“ palaiko tipo išvadas ir apima bet kokį tipą, kuris reiškia, kad kintamiesiems nereikia, kad jų tipai būtų aiškiai priskirti programuotojui; daugiau apie tai per akimirką.

„TypeScript“ taip pat yra skirtas objektiniam programavimui - „JavaScript“, o ne tiek daug. Tokias sąvokas kaip paveldėjimas ir prieigos kontrolė, kurios nėra intuityvios „JavaScript“, yra paprasta įgyvendinti „TypeScript“. Be to, „TypeScript“ leidžia įdiegti sąsajas, iš esmės prasmingą „JavaScript“ pasaulio koncepciją.

Be to, nėra jokių funkcijų, kurias galite užkoduoti „TypeScript“, kurių negalėtumėte užkoduoti ir „JavaScript“. Taip yra todėl, kad „TypeScript“ nėra kompiliuojamas įprasta prasme - pavyzdžiui, C ++ yra sukompiliuotas į dvejetainį vykdomąjį failą, kuris gali veikti nurodytoje aparatinėje įrangoje. Vietoj to, „TypeScript“ kompiliatorius perkoduoti „TypeScript“ kodas į funkciškai ekvivalentišką „JavaScript“. Šiame Seano Maxwello straipsnyje apie „GitConnected“ yra keletas puikių į objektą orientuotų „TypeScript“ kodo fragmentų ir jų „JavaScript“ atitikmenų pavyzdžių. Gautą „JavaScript“ galima paleisti bet kurioje vietoje, kur gali veikti bet kuris „JavaScript“ kodas, pradedant žiniatinklio naršykle ir baigiant serveriu, kuriame įrengtas „Node.js“.

Taigi, jei „TypeScript“ galų gale yra tik puošnus „JavaScript“ kodo generavimo būdas, kodėl verta juo rūpintis? Norėdami atsakyti į šį klausimą, turime pažvelgti iš kur atsirado „TypeScript“ ir kam jis naudojamas.

Kam naudojamas „TypeScript“?

„TypeScript“ kaip atvirasis šaltinis buvo išleistas 2012 m., Kai buvo sukurtas „Microsoft“. (Programinės įrangos milžinė išlieka projekto valdytoja ir pagrindinė kūrėja.) Šis to meto ZDNet straipsnis siūlo intriguojantį žvilgsnį, kodėl taip atsitiko: „Pasirodo, viena iš didžiausių motyvų buvo kitų„ Microsoft “komandų, bandžiusių tobulėti, patirtis. palaikyti „Microsoft“ produktus „JavaScript“. “

Tuo metu „Microsoft“ bandė padidinti „Bing Maps“ kaip „Google Maps“ konkurentą, taip pat pasiūlyti savo „Office“ paketo žiniatinklio versijas - o „JavaScript“ buvo pagrindinė užduočių kūrimo kalba. Tačiau kūrėjams iš esmės buvo sunku parašyti „Microsoft“ pavyzdinių pasiūlymų masto programas naudojant „JavaScript“. Taigi jie sukūrė „TypeScript“, kad būtų lengviau kurti įmonės lygio programas, veikiančias „JavaScript“ aplinkose. Tai yra kalbos, esančios oficialioje „TypeScript“ projekto svetainėje, žodžio „JavaScript, kuris keičia mastelį“ dvasia.

Kodėl „TypeScript“ yra tinkamesnis šiam darbui nei „vanilla JavaScript“? Na, mes galime amžinai ginčytis dėl objektyvaus programavimo nuopelnų, tačiau realybė yra ta, kad daugelis programinės įrangos kūrėjų, dirbančių didelių įmonių projektuose, yra įpratę ir tai padeda pakartotinai naudoti kodą kaip balioninius projektus. Taip pat neturėtumėte pamiršti, kiek įrankiai gali padidinti kūrėjų produktyvumą. Kaip pažymėta, dauguma įmonės IDE palaiko foninį dalinį kompiliavimą, kuris gali pastebėti klaidas dirbant. (Kol jūsų kodas sintaksiniu požiūriu yra teisingas, jis vis tiek bus perduodamas, tačiau gautas „JavaScript“ gali neveikti tinkamai; pagalvokite apie klaidų tikrinimą kaip apie rašybos tikrinimą.) Šie IDE taip pat gali padėti jums refaktoriaus kodą, kai gilinatės į savo kodą. projektą.

Trumpai tariant, „TypeScript“ naudojamas, kai norite, kad įmonės funkcijos ir įrankiai būtų tokios kalbos kaip „Java“, tačiau jūsų kodas reikalingas norint vykdyti „JavaScript“ aplinkoje. Teoriškai galėtumėte parašyti standartinį „JavaScript“, kurį pats „TypeScript“ kompiliatorius sugeneruoja, tačiau tai užtruks daug ilgiau, o didelei komandai bus sunkiau suprasti kodų bazę ir ją derinti.

O „TypeScript“ turi dar vieną tvarkingą triuką rankovėje: galite nustatyti, kad kompiliatorius taikytųsi pagal konkrečią „JavaScript“ vykdymo laiką, naršyklę ar net kalbos versiją. Kadangi bet kuris gerai suformuotas „JavaScript“ kodas taip pat yra „TypeScript“ kodas, galite, pavyzdžiui, paimti kodą, parašytą „ECMAScript 2015“ specifikacijoje, į kurią įtraukta daug naujų sintaksinių funkcijų, ir sukompiliuoti į „JavaScript“ kodą, kuris atitiktų senas versijas. kalba.

Įdiekite „TypeScript“

Pasiruošę pradėti žaisti su „TypeScript“? Kalbos diegimas yra lengvas. Jei jau naudojate „Node.js“ savo kūrimo mašinoje, galite naudoti „NPM“, „Node.js“ paketų tvarkyklę, kad ją įdiegtumėte. Oficialus „TypeScript“ mokymas per 5 minutes padės jums atlikti procesą.

„TypeScript“ taip pat gali būti įdiegtas kaip papildinys jūsų pasirinktam IDE, kuris suteiks jums įrankių pranašumų, apie kuriuos kalbėjome aukščiau, taip pat pasirūpins „TypeScript“ kompiliavimo į „JavaScript“ procesu. Kadangi „TypeScript“ sukūrė „Microsoft“, nenuostabu, kad „Visual Studio“ ir „Visual Studio Code“ yra aukštos kokybės papildinių. Bet kaip atvirojo kodo projektas „TypeScript“ buvo pritaikytas visur, pradedant atvirojo kodo IDE, pvz., „Eclipse“, ir gerbiant teksto redaktoriais, tokiais kaip „Vim“. Ir visą projektą galima naršyti ir atsisiųsti iš „GitHub“.

„TypeScript“ sintaksė

Įdiegę „TypeScript“, esate pasirengę pradėti tyrinėti, o tai reiškia suprasti „TypeScript“ sintaksės pagrindus. Kadangi „JavaScript“ yra „TypeScript“ pagrindas, prieš pradėdami turite žinoti „JavaScript“. Be abejonės, jūsų svarbiausi dalykai bus „TypeScript“ būdingos savybės, dėl kurių kalba bus unikali; čia paliesime aukščiausias vietas.

„TypeScript“ tipai

Akivaizdu, kad svarbiausia „TypeScript“ sintaksinė ypatybė yra tipo sistema. Kalba palaiko keletą pagrindinių tipų:

  • Loginė reikšmė: paprasta tikroji / klaidinga reikšmė.
  • Skaičius: „TypeScript“, kaip ir „JavaScript“, visi skaičiai yra slankiojo kablelio vertės - nėra atskiro sveikojo skaičiaus. „TypeScript“ palaiko dešimtainius, šešioliktainius, dvejetainius ir aštuntinius pažodžius.
  • Eilutė: tekstinių duomenų eilutė. Nustatydami duomenis galite naudoti viengubas arba dvigubas kabutes, kad apsuptumėte savo eilutę. Taip pat galite naudoti „backticks“ ( ` ), kad apsuptų eilutes keliomis eilutėmis, ir jūs galite įterpti išraiškas į eilutę su sintakse $ {expr}.
  • Masyvai ir rinkiniai: šie tipai leidžia saugoti kelias reikšmes nurodytoje sekoje. Masyve visos atskiros reikšmės yra to paties tipo duomenys, o poroje jos gali būti heterogeniškos. „TypeScript“ kiekvienam() metodas naudojamas iškviesti funkciją kiekvienam masyvo elementui.
  • Enus: Kaip ir to paties pavadinimo tipą C #, „TypeScript“ sąrašas leidžia priskirti žmonėms skaitomus vardus skaitinių reikšmių sekai.
  • Bet koks: tai yra kintamojo tipas, kai nebūtinai iš anksto žinote, kokia vertė jis bus - jis gali paimti vertes, pavyzdžiui, iš vartotojo įvesties ar trečiosios šalies bibliotekos.
  • Objektas: tai tipas, vaizduojantis viską, kas nėra primityvus tipas; tai labai svarbu objektyviam „TypeScript“ pobūdžiui.

Yra du skirtingi būdai, kaip aiškiai priskirti tipą kintamajam. Pirmoji yra kampinio skliaustelio sintaksė:

tegul someValue: bet koks;

tegul strLength: skaičius = (someValue) .length;

Ir antrasis yra kaip sintaksė:

tegul someValue: any = "tai yra eilutė";

tegul strLength: skaičius = (someValue kaip eilutė) .length;

Šie kodo fragmentai, paimti iš „TypeScript“ dokumentacijos, yra funkciškai lygiaverčiai. Abu apibrėžia someValue kaip tipo kintamasis bet koks ir paskirti "tai yra eilutė" kaip jo vertę, tada apibrėžkite strLength kaip skaičių ir kaip jo vertę priskirkite someValue.

„TypeScript“ tipus taip pat galima nustatyti darant išvadą. Tai yra, jei nustatysite x reikšmę į 7 nenustatydami, koks yra x tipas, kompiliatorius manys, kad x turėtų būti skaičius. Tam tikromis aplinkybėmis kompiliatorius gali padaryti išvadą bet koks tipo, nors galite naudoti kompiliavimo žymas, kad įsitikintumėte, jog taip nėra.

„TypeScript“ tipo sistema yra gana turtinga ir peržengia šio straipsnio taikymo sritį. Yra keletas pažangių ir naudingų tipų; tai apima sąjungų tipus, kurie leidžia nustatyti, kad kintamasis bus vienas iš kelių nurodytų tipų, ir susietus tipus, kuriuos galite sukurti pagal esamą tipą, kuriame kiekvieną esamo tipo ypatybę transformuojate tuo pačiu būdu. Pvz., Galite sukurti kintamojo sąjungos tipą, kurį norite naudoti kaip skaičių arba loginę reikšmę, bet ne eilutę ar ką nors kitą; arba galite sukurti susietą tipą, nustatantį visus masyvo elementus tik skaityti.

„TypeScript“ sąsaja

Kaip ir dauguma į objektą orientuotų kalbų, „TypeScript“ turi sąsajas, kurios leidžia vartotojams apibrėžti savo tipus. Sąsajos nustato objekto ypatybes ir tipus, susietus su tomis savybėmis. „TypeScript“ sąsajos gali turėti papildomų savybių. Norėdami sužinoti daugiau apie sintaksę, peržiūrėkite „TypeScript“ dokumentaciją.

„TypeScript“ generiniai

„TypeScript“ taip pat pritaria „ generiniai vaistai su objektyviomis kalbomis, tokiomis kaip „Java“ ir „C #“. (C ++ ekvivalentas yra vadinamas a šabloną.) „TypeScript“ bendrieji komponentai gali veikti ne tik vieną, bet ir įvairius tipus, atsižvelgiant į tai, kur kode tie komponentai vadinami. Štai labai paprastas pavyzdys iš „TypeScript“ dokumentacijos. Pirmiausia apsvarstykite šią funkciją, kuri pateikia argumentą ir iškart jį grąžina:

funkcijos tapatybė (arg: bet kuri): bet kuri {

grįžti arg;

}

Kadangi funkcija apibrėžta bet koks tipo, jis priims bet kokio tipo argumentą, kurį pasirinksite mesti. Tačiau tai, ką jis grąžins, bus bet koks tipo. Čia pateikiama funkcijos, naudojančios bendrinius, versija:

funkcijos tapatumas (arg: T): T {

grįžti arg;

}

Šis kodas apima tipo kintamasis T, kuris užfiksuoja gaunamo argumento tipą ir išsaugo jį vėlesniam naudojimui.

Yra daug daugiau generinių vaistų, kurie yra pagrindiniai veiksniai, leidžiantys pakartotinai naudoti kodą didelių įmonių projekte. Išsamesnės informacijos ieškokite „TypeScript“ dokumentacijoje.

„TypeScript“ klasė 

Į objektinį programavimą, klasės paveldi funkcionalumą ir savo ruožtu tarnauja kaip objektų statybinė medžiaga. „JavaScript“ tradiciškai nenaudojo klasių, o pasikliovė funkcijomis ir prototipu pagrįstu paveldėjimu, tačiau ši sąvoka buvo įtraukta į kalbą kaip dalis „ECMAScript 2015“ standarto versijos. Klasės jau buvo „TypeScript“ dalis, o dabar „TypeScript“ naudoja tą pačią sintaksę kaip ir „JavaScript“. Vienas iš „TypeScript“ kompiliatoriaus privalumų yra tai, kad jis gali paversti kodą su „JavaScript“ klasėmis į seną „JavaScript“ kodą, kuris atitinka standartus iki 2015 m.

„TypeScript“ data

Yra daugybė būdų ir objektų, kaip gauti ir nustatyti datą ir laiką „TypeScript“, dažniausiai paveldėti iš „JavaScript“. „JavaTPoint“ gerai išsiaiškino, kaip tai veikia.

„TypeScript“ pamoka 

Pasirengę gilintis? Paspartinkite šias „TypeScript“ mokymo programas:

  • „TypeScript“ per 5 minutes padės jums įdiegti „TypeScript“ procesą, jei to dar nepadarėte.
  • Ši „Visual Studio Code“ pamoka parodo, kaip IDE iš tikrųjų padidina jūsų „TypeScript“ kūrimo našumą.
  • „TypeScript“ pamoka pradedantiesiems: „Trūkstamas vadovas“ yra tikrai išsami įžanga, kuri bus naudinga, net jei turite gana ribotą „JavaScript“ patirtį.

Jei norite sužinoti, kaip naudoti „TypeScript“ su „React“, „JavaScript“ biblioteka vartotojo sąsajoms kurti, kurias sukūrė „Facebook“, peržiūrėkite „Kaip naudoti„ TypeScript “su„ React “ir„ Redux “iš„ Ross Bulat “ir skyrių„ React “ir„ webpack “„ TypeScript “dokumentuose. Laimingo mokymosi!