Gépelt | ||
Az első változat kelte | 2012. február 9 | |
---|---|---|
Paradigma | Több paradigma | |
Szerző | Anders Hejlsberg ... | |
Fejlesztő | Microsoft | |
Utolsó verzió | 4.2.4 ( 2021. április 9) | |
Fejlesztői verzió | 4.3 Béta ( 2021. április 9) | |
Gépelés | dinamikus , gyenge , erős választható , statikus választható | |
Befolyásolta | JavaScript , C # , F # | |
Beírva | JavaScript és TypeScript | |
Engedély | Open Web Foundation , fordító: Apache 2.0 | |
Weboldal | http://www.typescriptlang.org/ | |
Fájlkiterjesztés | .ts | |
A TypeScript egy ingyenes és nyílt forráskódú programozási nyelv, amelyet a Microsoft fejlesztett ki ésamelynek célja a JavaScript- kód előállításának fejlesztése és biztosítása. Ez a JavaScript szigorú szintaktikai szuperhalmaza (vagyis bármilyen helyes JavaScript kód használható a TypeScript-szel). Gépelt kódot transcompiled be a JavaScript , ezért lehet, bármelyik böngésző vagy JavaScript motor . A TypeScriptet Anders Hejlsberg , a C # fő feltalálója készítette.
A TypeScript lehetővé teszi a változók és függvények opcionális statikus beírását , osztályok és interfészek létrehozását, modulok importálását, miközben fenntartja a JavaScript nem kötelező érvényű megközelítését. Támogatja az ECMAScript 6 specifikációt .
A TypeScript támogatja a definíciós fájlokat, amelyek információkat tartalmazhatnak a meglévő JavaScript könyvtárak típusáról, ahogy a C ++ fejlécfájlok is leírhatják a meglévő objektumfájlok felépítését. Ez lehetővé teszi más programok számára, hogy a fájlokban meghatározott értékeket statikus típusú TypeScript entitásokként használják. Vannak harmadik fél fejléc fájlokat népszerű könyvtárakban, mint például a jQuery , MongoDB és d3.js . Az alap Node.js modulok TypeScript fejlécei is rendelkezésre állnak, amelyek lehetővé teszik a Node.js programok fejlesztését a TypeScript-ben.
Maga a TypeScript fordító TypeScript-be van írva, és JavaScript-be van állítva. Az Apache License 2.0 licenc alatt van . A TypeScript első osztályú programozási nyelvként szerepel a Microsoft Visual Studio 2013 2. és későbbi frissítésében, a C # és más Microsoft nyelvek mellett. [7] Egy hivatalos kiterjesztés lehetővé teszi a Visual Studio 2012 számára a TypeScript támogatását is. [8] Anders Hejlsberg, a C # főépítésze, a Delphi és a Turbo Pascal készítője a TypeScript fejlesztésén dolgozott.
A TypeScript 2007 - ben került nyilvánosságra 2012. október(a 0.8-as verziónál), két év belső fejlesztés után a Microsoftnál. Nem sokkal a bejelentés után Miguel de Icaza megdicsérte magát a nyelvet, de kritizálta a Microsoft Visual Studio- n kívül kiforrott fejlesztői környezet hiányát , amely nem volt elérhető Linuxon és OS X-en .
Az Electron keretrendszer által támogatott Visual Studio Code fejlesztői környezet (a Google Chromium kezdeményezésére), amely Windows, MacOSX és Linux rendszereken érhető el, most lehetővé teszi ennek a hiányosságnak a kitöltését.
Ma már más IDE-k, különösen az Eclipse támogatása van, a Palantir Technologies által biztosított plug- inen keresztül . Különböző szövegszerkesztők, köztük az Emacs , a Vim , a Webstorm , az Atom és a Microsoft saját Visual Studio Code is támogatják a TypeScript-t.
A 2013-ban kiadott TypeScript 0.9 hozzáadta a generikusok támogatását. A TypeScript 1.0 a Microsoft Build Developer Conference konferencián jelent meg 2014-ben. A Visual Studio 2013 Update 2 beépített támogatást nyújt a TypeScript számára.
Ban ben 2014. július, a fejlesztőcsapat új TypeScript fordítót jelentett be, a teljesítmény ötszörösére hivatkozva. Ugyanakkor a forráskód, amelyet eredetileg a CodePlex tárolt , a GitHub- ba került .
az 2016. szeptember 22, A TypeScript 2.0 kiadva; számos funkciót vezetett be, köztük a programozók azon képességét, hogy megakadályozzák a változók "null" értékek hozzárendelését, amelyeket néha milliárd dolláros hibának neveznek .
A TypeScript 3.0-t kiadták 2018. július 30 , sok nyelvi kiegészítést hozva, mint például a pihenési paraméterek és az elosztott kifejezések, a pihenési paraméterek duplatípusokkal, az általános pihenési paraméterek stb.
Tervezés:
A TypeScript a JavaScript hiányosságaiból eredt a nagyszabású alkalmazások fejlesztésében mind a Microsoft, mind a külső ügyfelek körében. Az összetett JavaScript-kód kezelésének kihívásai egyedi eszközök iránti igényhez vezettek, amelyek megkönnyítik a komponensek fejlesztését a nyelven.
A TypeScript fejlesztői olyan megoldást kerestek, amely nem rontja meg a kompatibilitást a standarddal és annak platformokon átívelő támogatásával. Tudva, hogy a jelenlegi ECMAScript standard javaslat jövőbeni támogatást ígért az osztályalapú programozáshoz, a TypeScript erre a javaslatra épült. Ez egy olyan szintaxis nyelvi kiterjesztésű JavaScript-fordítóhoz vezetett, amely egy javaslat-alapú szuperhalmaz, amely a kiterjesztéseket standard JavaScript-vé alakítja. Ebben az értelemben a TypeScript egy előzetes megtekintés volt arról, hogy mit várhatunk el az ECMAScript 2015-től. Egyedülálló szempont, amely nincs a javaslatban, de hozzáadódik a TypeScript-hez, az opcionális statikus gépelés, amely lehetővé teszi a nyelv statikus elemzését, amely megkönnyíti az eszközöket és az IDE-t. támogatás.
A nyelv az alábbi funkcionalitást adja hozzá az ECMAScript 6-hoz:
Az 1.6- os verzió óta a JSX- szintaxis támogatott.
A nyelv egy változó tartalmának vagy egy függvény (vagy egy módszer) visszatérési értékének megadására szolgál:
// Création d'une variable contenant une valeur booléenne. var maValeurBooleenne: boolean = false; // Création d'une variable contenant une chaîne de caractère. var maChaineDeCaractere: string = "Hello World"; // Création d'une variable contenant un nombre. var monNombre: number = 1; // Création d'une fonction retournant une chaîne de caractère. function maFonction(): string { return "Ma valeur de retour"; }Lehetséges általános típusok létrehozása is. Módszerhez:
function maFonction<T>(parametre: T) { // Contenu de la fonction. }Egy osztály számára:
class MaClasse<T> { maVariable : T; // Contenu de la classe. } // Création d'une instance de la classe "MaClasse" en définissant un type. var monInstance = new MaClasse<string>(); monInstance.maVariable = "Hello World";Az interfészek elengedhetetlen fogalom, és lehetővé teszik számunkra ezt a gépelési fogalmat. Egy felület létrehozásával lehetővé válik a változó vagy osztály tartalmának megadása:
interface MonInterface { // Création d'une signature de variable. maVariable: string; // Création d'une signature de méthode. maMethode(parametre: string): void; } class MaClasse implements MonInterface { maVariable: string; maMethode(parametre: string): void { // Contenu de la méthode. } } // Précision du type de la variable en utilisant l'interface. var instance: MonInterface = new MaClasse(); DefinitelyTypedA JavaScript-ben kifejlesztett osztályokhoz (vagy funkciókhoz) szánt nagy felületű könyvtár elérhető a borisyankov GitHub-tárában.
A nyelv támogatja az órákat. Az öröklést ott is támogatják:
class MaClasseDeBase { private _firstname; private _lastname; public constructor(firstname: string, lastname: string) { this._firstname = firstname; this._lastname = lastname; } public direBonjour(): string { return "Bonjour " + this._firstname + ", " + this._lastname; } } // La classe hérite de "MaClasseDeBase". class MaClasse extends MaClasseDeBase { public constructor(firstname: string, lastname: string) { // Accède au constructeur de "MaClasseDeBase". super(firstname, lastname); } } // Création d'une instance de "MaClasse" et // appel de la méthode: "direBonjour" de la classe parente : "MaClasseDeBase". var monInstance: MaClasse = new MaClasse("Jean", "Dupond"); monInstance.direBonjour();Amint a fenti példában látható, a nyelv háromféle láthatóságot tesz lehetővé, vagyis public: privateés protected. Ez utóbbi az 1.3-as verzióval érkezett.
Modul (névtérnek is nevezhető) létrehozása megengedett a következő kulcsszóval module :
module mon.espace.de.nom { // Contenu du module: classe, fonction, etc. }A TypeScript megkülönbözteti a belső modulokat a külső moduloktól. A belső modulok az ECMAScript 6 szintaxisán alapulnak, míg a külső modulok külső könyvtárat használnak: AMD vagy CommonJS .
A TypeScript kódban történő felsorolást a kulcsszó kínálja enum.
Az állandó érték meghatározása nélkül:
enum Couleur {Bleu, Rouge, Vert};Vegye figyelembe, hogy alapértelmezés szerint a felsorolás első állandójának értéke 0 lesz.
Az érték meghatározásával:
enum Couleur {Bleu = 0, Rouge = 1, Vert = 2};Teljesen meg lehet adni az " 1 " (vagy bármely más szám) értéket az első konstansnak.
Egy paraméter opcionálisan meghatározható a TypeScript-ben, a karakter hozzáadásával ?a változó neve után:
function maFonction(monParametre?: string) { // On teste si le paramètre "monParametre" a une valeur. if (monParametre) { return monParametre; } else { // Dans le cas contraire, une valeur par défaut est retournée. return "Hello World"; } } // La valeur retournée sera : "Hello World" sans avoir un message d'avertissement lors de la compilation. var resultat: string = maFonction(); // La valeur retournée sera : "Ma valeur". var resultat: string = maFonction("Ma valeur");A szakszervezetek a nyelv 1.4-es verziójával érkeztek. Ez a funkció lehetővé teszi több típus hozzáadását a függvény (vagy egy módszer) paraméteréhez:
// La fonction autorise que le paramètre soit une chaîne de caractère ou un tableau de chaîne de caractère. function maFonction(monParametre: string|string[]): void { if (typeof monParametre === "string") { // Traitement de ma chaîne de caractère. } else { // Traitement de mon tableau. } }A szakszervezetek mellett az 1.4 verzió lehetővé teszi álnevek létrehozását:
// Création d'un alias basé sur le type "number". type MonAlias = number; // Utilisation de l'alias ci-dessus. var monNombre: MonAlias = 1;A TypeScript kód JavaScript kóddá történő átalakításához fordító szükséges. Ehhez a fordítót kell használnia tsc. A csomagkezelőből telepíthető npm. A jelenlegi verzió alapértelmezés szerint támogatja az ECMAScript 3 specifikációt, és támogatja az ECMAScript 5 és 6 specifikációhoz nem tartozó funkciókat is (a fordító opcióinak megadásával).
A fordító különféle környezetekhez társítható, például: