A TypeScript egy olyan nyelvcsoport, amely a JavaScript Futtatási idő Végrehajtási környezet :.Ts fájlok, amelyek a Typive Code-t tartalmazó fájlokat normál JavaScriptbe állítják össze, amely ezután a böngésző által futtatható.
Jeremy Ashkenas először ezt a koncepciót népszerűek a CoffeeScript nyelvet, de sajnos, a viszonylag tömör szintaxis volt nehéz megtanulni a fejlesztők ismerik a C # vagy Visual Basic.
Mivel a Microsoft bővült a Web 2.0 technológiákba, úgy döntött, hogy inspirációt vállal a Jeremy Ashkenasból. A vizuális stúdió képességei miatt a fejlesztők egyszerűen csak a különböző nyelvi kiterjesztésekből származnak.
A TypeScript nem korlátozódik a statikus gépelésre: számos olyan fejlett funkcióval is rendelkezik, amely lehetővé teszi, hogy szimulálja az objektumorientált programozási paradigmákat az interneten. Ez a rövid útmutató a legfontosabb jellemzői segítségével elviszi Önt. Ha a nyelv felkéri Önt, több információt lehet tanulni a repülés során.
Annak ellenére, hogy a Tyspirírás Linux vagy MacOS-on is használható, ragaszkodunk a Microsoft hivatalos IDE-hez. Töltse le a Visual Studio 2017 ingyenes közösségi kiadását Microsoft, itt , és győződjön meg róla, hogy az ASP.NET Payload a telepítés során jelölje meg.
A Typective Fast Release Cadence miatt a Visual Studio-t ki kell bővíteni egy SDK modullal, amely letölthető Itt a Microsoft webhelye . Egyszerűen futtassa a telepítőt, mintha egy szabványos Windows alkalmazás lenne.
Nem lenne Microsoft, ha nem lenne több extra probléma: míg az SDK frissíti a vizuális stúdió telepítését, a tényleges TSC fordító nem kerül hozzáadásra a parancssorba. Ez a probléma a legjobb megoldás a NODE.JS NPM csomagkezelőjével a parancssorban.
PS C: \ felhasználók \ Tamha \ Downloads & GT; npm telepítés -g típusú típus
C: \ felhasználók \ tamha \ appdata \ baranging \ npm \ tsc - & gt; C: \ felhasználók \ tamha \ appdata \ baranging \ npm \ npm \ npm \ npm \ npm \ npm \ npm \ típustípus \ t
C: \ felhasználók \ Tamha \ appdata \ baranging \ npm \ tsserver - & gt; C: \ felhasználók \ tamha \ appdata \ baranging \ npm \ npm \ npm \ nde_modules \ típusok \ t
C: \ felhasználók \ Tamha \ appdata \ baranging \ npm
`- tí[email protected]
A Visual Studio elvárja, hogy megoldásközpontú folyamatban dolgozzon: érdekes, ez kevesebb, mint ideális az igényeinkhez. Ehelyett hozzon létre egy munkavállaló nevű fájlt, és helyezze el kényelmes helyen a fájlrendszerben. Nyissa ki a vizuális stúdióba húzva, és tegye le az eszköztárba a tetején. Ezután módosítsa tartalmát, hogy a következő kódot tartalmazza:
függvény Sayoi () {
riasztás ("oi!");
}
Sayoi ();
Amint azt a bevezetésben említettük, az a .ts fájl önmagában nem tud sokat tenni. Ennek köszönhetően folytassa az index.html nevű fájl létrehozásához, amelyet ugyanabban a mappában kell elhelyezni. Ezután adja hozzá a jelen lépéshez csatolt vázkódot. Töltsön be a fordító kimenetét, és úgy működik, mintha bármilyen más JavaScript lenne.
& lt; html & gt;
& lt; head & gt;
& lt; script src = "worker.js" & gt; & lt; / script & gt;
& lt; / head & gt;
& lt; test & gt; & lt; / test & gt;
& lt; / html & gt;
A következő lépés a .ts fájl kézi újrafordítását jelenti. Nyissa meg a PowerShell programot, és írja be a TSC parancsot, majd a bemeneti fájl nevét. Alapértelmezés szerint a kimeneti fájl megosztja az alapfájlt, de a .js helyett .s helyett. Végül nyissa meg az index.html fájlt a választott böngészőben, hogy bebizonyítsa az üzenet mező megjelenését.
PS C: \ felhasználók \ Tamha \ Downloads & GT; TSC. \ Worker.Ts
Eddig a Tydript kicsit többet tett, mint ami összetettebb JavaScript környezetként működik. A következő lépés magában foglalja a statikus gépelés támogatását: lehetővé teszi a fordító számára, hogy elvégezze a paraméterek statikus elemzését, érvénytelen értékeket tartva. Ehhez egy típuskészletre van szükség - az alaptípusokat felsorolják a fenti táblázatban, míg az osztályokat később tárgyaljuk.
A TypeScript változó típusú hozzárendelések a "A:" -on keresztül történnek a változó neve után. Módosítsuk az OI funkciót, hogy vegyenek be egy számot, és adjunk át egy karakterláncban. Végül, hívja fel újra a TSC fordítót, hogy ünnepelje a szemét a képernyőn megjelenő hibaüzenet fölött - a vizuális stúdióban, véletlenül kiemeli a kérdéses sort is.
A Sayoi funkció (Whattosay: szám) {
riasztás (whattosay);
}
Sayoi ("hello");
A JavaScript az objektum-orientációt prototípuson keresztül hajtja végre: olyan kód stílus, amely nem gyakori a .NET és C / C ++ világban. A TypeScript megoldja ezt a problémát azáltal, hogy lehetővé teszi az osztályok létrehozását - a fenti lépést kísérő töredékben bemutatott folyamat.
osztály Imagine {
nyilvános myresult: szám;
Nyilvános Mya: szám;
Nyilvános Myb: szám;
Constructor (_a: szám, _b: szám)
{
ez.myresult = _a + _b;
ez.mya = _a;
}
}
Általában a nyilvános attribútumot arra használják, hogy nyilatkozzon arról, hogy egy program eleme kívülről elérhető. A konstruktor paraméterként használják, ezért utasítja a TypeScript fordítót, hogy létrehozzon helyi mezőket azonos nevekkel.
osztály Imagine {
nyilvános myresult: szám;
// nyilvános Mya: szám;
Constructor (Public Mya: szám, nyilvános _b: szám)
{
ez.myresult = Mya + _b;
ez.mya = mya;
}
}
Bővítsük meg példakörünkünket úgy, hogy olyan eljárást biztosítunk, amely a MyResultban és a Mya-ban tárolt értékeket használja, és kimutatta őket a képernyőn. Végül az új paramétert az osztály példányának létrehozására használják - a módszer felhívására használják.
osztály Imagine {
nyilvános myresult: szám;
. . .
Nyilvános mondás: Void {
riasztás (ez.miresult);
}
}
Legyen myimagine: képzelje el = új képzelet (2, 2);
myimagine.sabanysomething ();
A TypeScript nyelvi designja a lehető legtöbb erőfeszítést megtakaríthatja a fejlesztőknek. Egy szép funkció a paraméterek automatikus populációja, amelyet a parancsikon segítségével létrehozott.
osztály Imagine {
nyilvános myresult: szám;
Konstruktor (nyilvános Mya: szám, nyilvános myb: szám)
{
ez.myresult = mya + myb;
}
Nyilvános mondás: Void {
riasztás (ez.Mya + "" + this.myb);
}
}
Az objektumorientált programozás egyik alapvető tétele magában foglalja az egymás tetején lévő osztályokat. A származtatott osztályok ezt követően felülbírálhatják alaposztályuk tartalmát, ami rugalmasan állítható osztályú hierarchiákhoz vezethet.
Az osztály jövője kiterjeszti képzelni
{
Nyilvános mondás: Void {
konzol.log (this.mya);
}
}
A fenti kódrészlet felülmúlta az Imagine osztályt egy jövőbeni alelemgel. A jövőben eltér az elképzelésről, hogy azt mondja, hogy azt mutatja, hogy a böngésző parancssorába üzenetet küld a parancssorba.
Legyen Myimagine: Imagine = Új jövő (2, 2);
myimagine.sabanysomething ();
Legyen MyFuture: Future = Új jövő (9, 9);
myfuture.sasaysomething ();
Ezzel a tényleges kód tesztelhető. Amikor fut, a böngésző konzol tartalmaz két meghívás a jövő - a haladó osztály megtartja tulajdonságait akkor is, ha hivatkozni, mint Képzeld objektumot.
A nyilvános módosítóval rendelkező tagváltozók kiaknázása népszerűtlen: Végül is elviszi a legtöbb irányítást, amit a felhasználók a változó tartalmával végeznek. A Típusú Accessors lehetővé teszi, hogy a probléma megoldását a hagyományos OOP-hoz hasonló módon dolgozzon ki. Ne feledje, hogy az olvasható tagok is támogatottak, de ennek a szolgáltatásnak a használata megköveteli az ECMASScript5 támogatás aktiválódását.
Nyilvános _mycache: string;
Get Fullcache (): String {
Visszaadja ezt._mycache;
}
Fullcache beállítása (Newx: String) {
ha (newx == "hello") {
ez._mycache = newx;
}
más {
konzol.log ("Rossz adatok!");
}
}
A komplex öröklési hierarchiák létrehozásának képessége motiválja a fejlesztőket, hogy kipróbálják a szerencsét az absztrakt osztályokon. A TERMÉSZETEKRE VONATKOZÓ A TERMÉKBEN TÖRTÉNIK - A jelen példa kísérő példája egy olyan osztályt hoz létre, amely absztrakt és igazi taggal rendelkezik. Az absztrakt osztály azonnali megpróbáltatása közvetlenül egy fordítóhiba vezet.
Absztrakt osztály Imagine {
nyilvános myresult: szám;
Absztrakt SayName (): Void;
Constructor (nyilvános Mya: szám, nyilvános myb: szám) {
ez.myresult = mya + myb;
}
Nyilvános mondás: Void {
riasztás (ez.Mya + "" + this.myb);
}
}
Az osztály jövője kiterjeszti képzelni {
. . .
Nyilvános SayName () {
konzol.log ("hello");
}
}
Mivel az objektumszerkezetek összetettebbé válnak, a fejlesztők gyakran olyan helyzeteket találnak, ahol az egyik osztály több logikai bitet valósít meg. Ebben az esetben egy interfész teszi a szép megoldást - a példa azt mutatja, hogy mit várhat.
Interface Datainterface {
mező: szám;
Workermethod (): Void;
}
Mint a fenti osztály esetében, egy interfész nem jó, ha nem tudjuk használni. Szerencsére a végrehajtás nem különösebben nehéz: tudatában kell lennie azzal, hogy az interfész szerzők képesek, továbbá kijelentik a teremtés részeit, hogy opcionálisak legyenek.
Az osztályos munkavállaló eszközök adatainterface {
mező: szám;
Workermethod (): Void {
dobja az új hibát ("A módszer nem valósult meg.");
}
}
A TypeScript fordító a szigorú változó érvényességellenőrzést érvényesíti. Ha egy tárolási osztályon dolgozik, az általános generics lehetővé teszi, hogy hagyja, hogy a végfelhasználó meghatározza a kezelendő típusát. Ezenkívül a Tydript lehetővé teszi más generikus elemeket is, mint például a funkciók, amint azt a dokumentációból vett (tautológiai) tételben mutatjuk be.
// generikus funkció
Funkció identitás (Arg: Szám): Szám {
visszatérjen az Arg;
}
// generikus osztály
osztály GenericNumber & lt; t & gt; {
Zerovalue: T;
Add: (x: t, y: t) = & gt; T; }
Az állami gépek és hasonló elemek nagymértékben biztosítják a módját, hogy korlátozzák a változót néhány jól definiált állapot tárolására. Ez az Enum Adat típusával valósítható meg:
ENUM PALSERSATE {
Idle = 1,
Read0,
Read1
}
osztályozza {
Nyilvános mystate: Pasterste;
Konstruktor (nyilvános Mya: szám, nyilvános myb: szám)
{
this.mystate = pasterstate.ide;
Az egyetlen olyan nyelv, amely összetett, mint az egyetlen cikk típusát, szinte lehetetlen. Nézd a Típusú webhely példái További információ a nyelvi kötésekről.
Ezt a cikket eredetileg a 266-os kérdésben tették közzé Web designer , a kreatív web design magazin - szakértői oktatóanyagokat, élvonalbeli trendeket és szabad erőforrásokat kínál. Itt vásároljon 266 kérdést vagy Iratkozzon fel itt a webdesignerre .
Speciális karácsonyi ajánlat: Takarítson meg akár 49% -ot a webes tervező előfizetésére Önnek vagy barátjának karácsonyra. Ez egy korlátozott ajánlat, így gyorsan mozog ...
Kapcsolódó cikkek:
Az Adobe dimenziója szellővel rendelkezik komplex jelenetek beállításához (Kép hitel: Mike Griggs) ..
Page 1 of 2: Fedezze fel az 5 új CSS funkciót: 01-10 Fedezze fel az 5 �..
Van egy sor művészeti technikák Ez segíthet a digitális festészetben, de nincs megtagadva, hogy a teremtés ..
A kupola fények használata az elmúlt évtizedben az CGI létrehozás egyik legnagyobb fejlődése volt. Fürdés egy jelenet m..
Az e-kereskedelem az elmúlt években olyan népszerűvé vált, hogy most nehéz elképzelni a jövőt. A hatalom az internet te..
Egy kép ezer szót ér, és egy videó érdemes egy millió. A videó több információt továbbíthat, mint a nyomtatás vagy a statikus kép. Lehetséges, hogy másképp nem tudják a dok..
Page 1 of 2: Hozzon létre egy vegyes tintautcát Hozzon létre egy vegye..
Az Adobe új sorozatú videó oktatóanyagokat indít, amelyeket ma úgy hívnak, amelynek célja, hogy vázolja fel a különböző tervezési projektek létrehozását Kreatí..