Kontentke ótiw

TypeScript

Wikipedia, erkin enciklopediya

TypeScript − Microsoft tárepinen jaratılǵan biypul hám ashıq kodlı joqarı dárejeli programmalastırıw tili, ol JavaScript-ke qosımsha túrdegi annotaciyalar menen statikalıq teriwdi (jazıwdı) qosadı. Ol úlken qosımshalardı jaratıwǵa hám JavaScript-ke transpilyaciyalawǵa arnalǵan.[1] TypeScript JavaScript-tiń joqarı jıynaǵı bolǵanlıqtan, barlıq JavaScript programmaları sintaksislik jaǵınan TypeScript-ke jaramlı bolıp tabıladı, biraq olar qáwipsizlik sebepleri boyınsha teriwdi teksere almaydı.

TypeScript klient tárepinen de, server tárepinen de orınlaw ushın JavaScript qosımshaların jaratıw ushın paydalanıwı múmkin (Node.js, Deno yamasa Bun sıyaqlı). Transpilyaciya ushın bir neshe opciyalar bar. Standart TypeScript kompilyatorın[2] paydalanıwǵa boladı yamasa TypeScript-ti JavaScript-ke aylandırıw ushın Babel kompilyatorın shaqırıwǵa boladı.

TypeScript bar JavaScript kitapxanalarınıń tip informaciyasın qamtıytuǵın anıqlawshı fayllardı qollaydı, C++ kitapxana faylları bar obyekt fayllarınıń strukturasın sáwlelendire aladı. Bul basqa programmalarǵa fayllarda anıqlanǵan mánislerdi statikalıq túrde terilgen TypeScript obyektleri sıyaqlı paydalanıwǵa imkaniyat beredi. jQuery, MongoDB hám D3.js sıyaqlı ataqlı kitapxanalarǵa arnalǵan úshinshi tárep kitapxana faylları bar. Node.js kitapxana modulleri ushın TypeScript kitapxanalarında da TypeScript ishinde Node.js programmaların rawajlandırıwǵa imkaniyat beredi.[3]

TypeScript kompilyatorınıń ózi TypeScript tilinde jazılǵan hám JavaScript-ke kompilyaciya etilgen. Ol Apache 2.0 licenziyası boyınsha licenziyalanǵan. Anders Xeylsberg, C# tiliniń jetekshi arxitektorı hámde Delphi hám Turbo Pascal tiliniń jaratıwshısı, TypeScript-ti islep shıǵıw boyınsha jumıs isledi.[4][5][6][7]

TypeScript 2012-jıl Microsoft korporaciyasında eki jıllıq ishki rawajlanıwdan keyin 0.8 versiyası menen kópshilikke shıǵarıldı.[8][9] Aradan kóp ótpesten dáslepki járiyalanıwdan keyin Migel de Ikaza tildiń ózin joqarı bahaladı, biraq ol gezde Linux hám OS X sistemalarında bolmaǵan Microsoft Visual Studio-dan basqa jetilisken ortalıq (IDE) qollawınıń joqlıǵın sınadı.[10][11] 2021-jıl aprelden baslap basqa programmalastırıw ortalıq hám tekst redaktorlarda, sonıń ishinde Emacs, Vim, WebStorm, Atom[12] hám Microsoft korporaciyasınıń jeke Visual Studio Code qollawı bar.[13] 2013 jılı shıǵarılǵan TypeScript 0.9 generiklerge qollawdı qostı.[14]

TypeScript 1.0 2014 jılı Microsoft Build baǵdarlamashılar konferenciyasında shıǵarıldı.[15] Visual Studio 2013 Update 2 TypeScript ushın ornatılǵan qollawdı támiyinledi.[16] Keyingi jetilistiriw 2014 jıl iyulda ámelge asırıldı, baǵdarlamashılar toparı ónimliliktiń bes ese artqanın hám jańa kompilyatorın járiyaladı. Bir waqıtta CodePlex-te dáslepki ornatılǵan derek kodı GitHub-qa kóshirildi..[17]

2016-jıl 22-sentyabrde TypeScript 2.0 shıǵarıldı, ol bir neshe imkaniyatlardı,[18] sonıń ishinde baǵdarlamashılarǵa geyde milliard dollarlıq qáte dep atalatuǵın qáteni azaytıw ushın nollik qáwipsizlikti tańlaw imkaniyatın qostı.

TypeScript 3.0 2018-jıl 30-iyulda islep shıǵarıldı,[19] ol demalıs parametrlerindegi kortejler hám tarqalıw ańlatpaları, kortej tipleri bar demalıs parametrleri, ulıwma demalıs parametrleri h.t.b. sıyaqlı kóplegen til tolıqtırıwların ákeldi.[20]

TypeScript 4.0 2020 jıl 20-avgustte shıǵarıldı.[21] 4.0 heshqanday úzilissiz ózgerissiz kirgizbese de, ol Custom JSX Factories hám Variadic Tuple Types sıyaqlı til imkaniyatların qostı.[21]

TypeScript 5.0 2023 jıl 16-martta shıǵarıldı hám dekoratorlardı qollawdı óz ishine aldı.[22]

TypeScript Microsoft korporaciyasında da, olardıń sırtqı tutınıwshıları arasında da keń kólemli qosımshalardı jaratıwǵa arnalǵan JavaScript kemshiliklerinen payda boldı.[23] Quramalı JavaScript kodı menen jumıs islew qıyınshılıqları tildegi komponentlerdi jaratıwdı jeńilletiw ushın arnawlı qurallarǵa bolǵan talaptı payda etti.[24]

TypeScript baǵdarlamashıları standart penen hám onıń kross-platformalıq qollawı menen úylesimlilikti buzbaytuǵın sheshim izledi. Aǵımdaǵı ECMAScript standart usınısı keleshekte klasqa tiykarlanǵan programmalastırıwdı qollap-quwatlawın bilip, TypeScript usı usınısqa tiykarlanǵan. Bul sintaksislik til keńeytpeleriniń jıynaǵı bar JavaScript kompilyatorına ákeldi, keńeytpelerin ápiwayı JavaScript-ke aylandıratuǵın usınısqa tiykarlanǵan joqarı toplam. Usı mániste, TypeScript klass imkaniyatı ECMAScript 2015 versiyasınan ne kútiwge bolatuǵının aldınnan kóriw edi. Usınısta emes, biraq TypeScript programmasına qosılǵan ózine tán aspekt − statikalıq tildi analizlewge imkaniyat beretuǵın qosımsha statikalıq teriw (birimlep teriw dep te ataladı) qurallardı hám IDE qollawın jeńilletedi.

JavaScript penen úylesimlilik

[redaktorlaw | derekti redaktorlaw]

TypeScript – bul ECMAScript 2015 programmasınıń qatań toplamı, onıń ózi ádette JavaScript dep atalatuǵın ECMAScript 5-tiń joqarı toplamı bolıp tabıladı.[25] Solay etip, JavaScript programması da tiyisli TypeScript programması bolıp tabıladı hám TypeScript baǵdarlaması JavaScript-ti úziliksiz tutınıwı múmkin. Ádepki boyınsha kompilyator aǵımdaǵı basım standart ECMAScript 5-ke baǵdarlanǵan, biraq sonıń menen birge ECMAScript 3 yamasa 2015-te paydalanatuǵın konstrukciyalardı isley aladı.

TypeScript járdemi menen bar JavaScript kodın paydalanıwǵa, ataqlı JavaScript kitapxanaların biriktiriwge hám basqa JavaScript-ten TypeScript arqalı jaratılǵan kodtı shaqırıwǵa boladı.[26] Bul kitapxanalar ushın tiplik deklaraciyalar derek kodı menen birge keledi.

TypeScript Java-ǵa uqsas sintaksisti paydalanıp ulıwmalastırılǵan programmalastırıwdı (ingl. generic programming) qollaydı.[27] Tómende indentifikaciya funkciyasına mısal keltirilgen.[28]

function id<T>(x: T): T {
    return x;
}

TypeScript sáykes funkciyalar menen ózgeriwshiler sıyaqlı klass metodları menen maydanları ushın birdey annotaciya mánislerin paydalanadı. Vanil JavaScript klasları menen salıstırǵanda, TypeScript klası interfeysti implements gilt sózi arqalı ámelge asıra aladı, Java-ǵa uqsas ulıwma parametrlerdi paydalana aladı hám ulıwma hámde jeke maydanlardı kórsete aladı.

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})`;
    }
}

Moduller hám atlar keńisligi (namespaces)

[redaktorlaw | derekti redaktorlaw]

TypeScript moduller menen atlar keńisliklerin (ingl. namespaces) ajıratadı. TypeScript-tiń eki imkaniyatı da klaslardı, interfeyslerdi, funkciyalardı hám ózgeriwshi mánislerdi konteynerlerge inkapsulyaciyalawdı qollaydı. At keńisligi (burınǵı ishki moduller) kodtı inkapsulyaciyalaw ushın JavaScript operativ shaqırılatuǵın funkciya ańlatpaların paydalanadı, al moduller (burınǵı sırtqı moduller) bunı islew ushın JavaScript kitapxanasınıń shablonların paydalanadı (AMD yamasa CommonJS).[29]

Islep shıǵıw quralları

[redaktorlaw | derekti redaktorlaw]

TypeScript-tiń tsc dep atalatuǵın kompilyatorı TypeScript tilinde jazılǵan. Nátiyjesinde onı ápiwayı JavaScript-ke kompilyaciyalawǵa boladı hám onnan keyin hár qanday JavaScriptte (mısalı, brauzerde) orınlawǵa boladı. Kompilyator paketi kompilyatordı orınlay alatuǵın skript xostı menen paydalanatuǵın Node.js paketi retinde de bar.

Sonday-aq qarań:

[redaktorlaw | derekti redaktorlaw]
  1. Bright. „Microsoft TypeScript: the JavaScript we need, or a solution looking for a problem?“. Ars Technica. Condé Nast (3-oktyabr 2012-jıl). Qaraldı: 26-aprel 2015-jıl.
  2. „TypeScript Programming with Visual Studio Code“ (en). code.visualstudio.com. Qaraldı: 12-fevral 2019-jıl.
  3. „borisyankov/DefinitelyTyped“. GitHub. Qaraldı: 26-aprel 2015-jıl.
  4. Foley. „Microsoft takes the wraps off TypeScript, a superset of JavaScript“. ZDNet. CBS Interactive (1-oktyabr 2012-jıl). Qaraldı: 26-aprel 2015-jıl.
  5. Somasegar. „Somasegar's blog“. Microsoft (1-oktyabr 2012-jıl). Qaraldı: 26-aprel 2015-jıl.
  6. Baxter-Reynolds. „Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?“. ZDNet (1-oktyabr 2012-jıl). Qaraldı: 26-aprel 2015-jıl.
  7. Jackson. „Microsoft Augments Javascript for Large-scale Development“. CIO. IDG Enterprise (1-oktyabr 2012-jıl). 17-dekabr 2013-jılda túp nusqadan arxivlendi. Qaraldı: 26-aprel 2015-jıl.
  8. „Microsoft augments JavaScript for large-scale development“. InfoWorld. IDG (1-oktyabr 2012-jıl). Qaraldı: 26-aprel 2015-jıl.
  9. Turner. „Announcing TypeScript 1.0“. TypeScript Language team blog. Microsoft (2-aprel 2014-jıl). Qaraldı: 20-oktyabr 2021-jıl.
  10. Miguel de Icaza. „TypeScript: First Impressions“ (1-oktyabr 2012-jıl). — „But TypeScript only delivers half of the value in using a strongly typed language to Unix developers: strong typing. Intellisense, code completion and refactoring are tools that are only available to Visual Studio Professional users on Windows. There is no Eclipse, MonoDevelop or Emacs support for any of the language features“. Qaraldı: 12-oktyabr 2012-jıl.
  11. „Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?“. ZDNet (1-oktyabr 2012-jıl). — „And I think this is a pretty big misstep. If you're building web apps that run on anything other than Windows, you're likely using a Mac and most likely not using Visual Studio. You need the Visual Studio plug-in to get the IntelliSense. All you get without Visual Studio is the strong-typing. You don't get the productivity benefits you get from IntelliSense..“. Qaraldı: 12-oktyabr 2012-jıl.
  12. „TypeStrong: The only TypeScript package you will ever need“. GitHub. Qaraldı: 21-iyul 2016-jıl.
  13. Hillar. „Working with TypeScript in Visual Studio 2012“. Dr. Dobb's Journal (14-may 2013-jıl). Qaraldı: 26-aprel 2015-jıl.
  14. „TypeScript 0.9 arrives with new compiler, support for generics“. The Register (18-iyun 2013-jıl). Qaraldı: 26-aprel 2015-jıl.
  15. Hejlsberg. „TypeScript“. Channel 9. Microsoft (2-aprel 2014-jıl). Qaraldı: 26-aprel 2015-jıl.
  16. Jackson. „Microsoft TypeScript graduates to Visual Studio“. PC World. IDG (25-fevral 2014-jıl). Qaraldı: 26-aprel 2015-jıl.
  17. Turner. „New Compiler and Moving to GitHub“. TypeScript Language team blog. Microsoft (21-iyul 2014-jıl). Qaraldı: 26-aprel 2015-jıl.
  18. Bright. „TypeScript, Microsoft's JavaScript for big applications, reaches version 2.0“. Ars Technica. Condé Nast (22-sentyabr 2016-jıl). Qaraldı: 22-sentyabr 2016-jıl.
  19. „Announcing TypeScript 3.0“ (30-iyul 2018-jıl). Qaraldı: 16-mart 2020-jıl.
  20. „TypeScript 3.0“ (30-iyul 2018-jıl). Qaraldı: 16-mart 2020-jıl.
  21. 21,0 21,1 „Announcing TypeScript 4.0“ (en-US). TypeScript (20-avgust 2020-jıl). Qaraldı: 30-oktyabr 2020-jıl.
  22. „Documentation - TypeScript 5.0“ (en). www.typescriptlang.org. Qaraldı: 18-may 2023-jıl.
  23. Anders Hejlsberg. „What is TypeScript and why with Anders Hejlsberg“. www.hanselminutes.com (5-oktyabr 2012-jıl). Qaraldı: 15-yanvar 2014-jıl.
  24. S. Somasegar. „TypeScript: JavaScript Development at Application Scale“. msdn.com (1-oktyabr 2012-jıl). Qaraldı: 27-noyabr 2013-jıl.
  25. „Angular 2“. angular.io. Qaraldı: 4-may 2016-jıl.
  26. „Welcome to TypeScript“. typescriptlang.org. Microsoft. Qaraldı: 26-aprel 2015-jıl.
  27. Turner. „Announcing TypeScript 0.9“. TypeScript Language team blog. Microsoft (18-iyun 2013-jıl).
  28. „Generics in Typescript“. Microsoft.
  29. Sönke Sothmann. „An introduction to TypeScript's module system“. blog.oio.de (31-yanvar 2014-jıl). 1-fevral 2014-jılda túp nusqadan arxivlendi. Qaraldı: 21-fevral 2014-jıl.

Sırtqı siltemeler

[redaktorlaw | derekti redaktorlaw]