Programming TypeScript


Download 1.81 Mb.
bet197/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   193   194   195   196   197   198   199   200   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Deklaratsiyalarni yozing

.d.ts

{"deklaratsiya": rost}

Yo'q

Deklaratsiya xaritalar

.d.ts.xaritasi

{"declarationMap": true}

Yo'q

Birinchi turdagi artefakt - JavaScript fayllari tanish bo'lishi kerak. TSC TypeScript kodingizni JavaScript-ga kompilyatsiya qiladi, siz uni NodeJS yoki Chrome kabi JavaScript platformasi yordamida ishga tushirishingiz mumkin. Agar siz tsc yourfile.ts ni ishga tushirsangiz, TSC yourfile.ts ni kiritadi va uni JavaScript-ga kompilyatsiya qiladi.
yaratilgan TypeScript faylining ma'lum bir qatori va ustuniga bog'laydigan maxsus fayllar . Bu kodingizni disk raskadrovka qilish uchun foydalidir (Chrome DevTools yaratilgan JavaScript oʻrniga TypeScript kodingizni koʻrsatadi) va JavaScript istisno stekidagi satr va ustunlarni koʻrsatish uchun TypeScript-ga qaytariladi (sahifadagi “Xatolarni kuzatish” boʻlimida eslatib oʻtilgan vositalar) . 258 agar siz ularga manba xaritalaringizni bersangiz, bu qidiruvni avtomatik ravishda bajaring).
Uchinchi artefakt - turdagi deklaratsiyalar - boshqa TypeScript loyihalariga siz yaratgan turlaringizdan foydalanish imkonini beradi.
Nihoyat, deklaratsiya xaritalari TypeScript loyihalaringiz uchun kompilyatsiya vaqtlarini tezlashtirish uchun ishlatiladi. Ular haqida ko'proq ma'lumotni 255-betdagi "Loyihaga havolalar" da o'qishingiz mumkin . Ushbu bobning qolgan qismini ushbu artefaktlarni qanday va nima uchun yaratish haqida gaplashamiz.
Kompilyatsiya maqsadingizga qo'ng'iroq qilish
JavaScript ishlash uchun gʻayrioddiy til boʻlishi mumkin: u nafaqat yillik relizlar sikli bilan tez oʻzgaruvchan spetsifikatsiyaga ega, balki dasturchi sifatida siz dasturni ishga tushirayotgan platformangiz qaysi JavaScript versiyasini amalga oshirishini har doim ham nazorat qila olmaysiz. . Bundan tashqari, ko'pgina JavaScript dasturlari izomorfdir , ya'ni siz ularni serverda yoki mijozda ishlatishingiz mumkin. Masalan:

  • Agar siz JavaScript dasturingizni o'zingiz boshqaradigan serverda ishga tushirsangiz, uning qaysi JavaScript versiyasida ishlashini aniq nazorat qilishingiz mumkin.

  • Agar siz JavaScript dasturingizni ochiq kodli loyiha sifatida chiqarsangiz, iste'molchilaringizning JavaScript platformalarida qaysi JavaScript versiyasi qo'llab-quvvatlanishini bilmaysiz. NodeJS muhitida qila oladigan eng yaxshi narsa bir qator qo'llab-quvvatlanadigan NodeJS versiyalarini e'lon qilishdir, ammo brauzer muhitida omadingiz yo'q.

  • Agar siz JavaScript-ni brauzerda ishga tushirsangiz, odamlar uni ishga tushirish uchun qaysi brauzerdan foydalanishi haqida hech qanday tasavvurga ega emassiz — eng zamonaviy JavaScript funksiyalarini qo‘llab-quvvatlaydigan eng so‘nggi Chrome, Firefox yoki Edge, bu brauzerlardan birining biroz eskirgan versiyasida biroz eskirgan. -edge funksiyasi, Internet Explorer 8 kabi antiqa brauzer yoki garajingizdagi PlayStation 4 da ishlaydigan kabi o'rnatilgan brauzer. Siz qila oladigan eng yaxshi narsa bu sizning ilovangizni ishga tushirish uchun odamlar brauzerlari qoʻllab-quvvatlashi kerak boʻlgan minimal funksiyalar toʻplamini belgilash, imkon qadar koʻproq ushbu funksiyalar uchun polifilllarni joʻnatish va foydalanuvchilar haqiqatan ham eski brauzerlarda ilovangiz yutganini aniqlashga harakat qilishdir. ishga tushmang va ularga yangilash kerakligi haqida xabarni ko'rsating.

  • Agar siz izomorf JavaScript kutubxonasini chiqarsangiz (masalan, brauzerda ham, serverda ham ishlaydigan jurnallar kutubxonasi), u holda siz NodeJSning minimal versiyasini va brauzer JavaScript dvigatellari va versiyalarining bir qismini qo'llab-quvvatlashingiz kerak.

Har bir JavaScript muhiti har bir JavaScript funksiyasini qo'llab-quvvatlamaydi, lekin siz hali ham so'nggi til versiyasida kod yozishga harakat qilishingiz kerak. Buning uchun ikkita usul mavjud:

  1. Ilovalarni JavaScript-ning so'nggi versiyasidan siz maqsad qilgan platforma qo'llab-quvvatlaydigan eng eski JavaScript versiyasiga o'tkazing (ya'ni, avtomatik ravishda o'zgartiring). Biz buni for..of loops va async / await kabi til xususiyatlari uchun qilamiz , ular avtomatik ravishda for loops va .then calls ga aylantirilishi mumkin .

  2. Polyfill (ya'ni, siz ishlayotgan JavaScript ish vaqtida etishmayotgan har qanday zamonaviy xususiyatlarni ta'minlang). Biz buni JavaScript standart kutubxonasi tomonidan taqdim etilgan funksiyalar (masalan, Promise , Map va Set ) va prototip usullari (masalan, Array.prototype.includes va Function.prototype.bind ) uchun qilamiz.

TSC kodingizni eski JavaScript versiyalariga o'tkazish uchun o'rnatilgan yordamga ega, lekin u avtomatik ravishda kodingizni polifilllamaydi. Buni takrorlash kerak: TSC ko'pgina JavaScript funksiyalarini eski muhitlar uchun o'zgartiradi, ammo etishmayotgan xususiyatlarni amalga oshirishni ta'minlamaydi.
TSC sizga qaysi muhitlarni maqsad qilib qo'ymoqchi bo'lsangiz, terish uchun uchta sozlamani taqdim etadi:

  • target siz oʻtkazmoqchi boʻlgan JavaScript versiyasini oʻrnatadi: es5 , es2015 , va hokazo.

  • modul siz maqsad qilmoqchi bo'lgan modul tizimini o'rnatadi: es2015 modullari, commonjs modullari, systemjs modullari va boshqalar.

  • lib, TypeScript-ga siz maqsad qilgan muhitlarda qaysi JavaScript funksiyalari mavjudligini aytadi: es5 xususiyatlari, es2015 xususiyatlari, dom va boshqalar. U aslida bu funksiyalarni amalga oshirmaydi — polito'ldirishlar aynan mana shu — lekin u TypeScript-ga ushbu xususiyatlar mavjudligini aytadi. mavjud (mahalliy yoki polifill orqali).

maqsad bilan qaysi JavaScript versiyasiga o'tkazishingiz va lib- ni nimaga o'rnatishingiz kerakligini belgilaydi. Agar ishonchingiz komil bo'lmasa, es5 odatda ikkalasi uchun ham xavfsiz standart hisoblanadi. Modulni nimaga sozlashingiz siz NodeJS yoki brauzer muhitini maqsad qilganingizga va agar ikkinchisi bo'lsa, qaysi modul yuklagichidan foydalanayotganingizga bog'liq.
m oslik jadvallarida maqsadli platformalaringiz qaysi JavaScript-ni qo'llab-quvvatlashini qidiring .
Keling, maqsad va lib uchun bir oz chuqurroq qazib olaylik ; modulni 258-betdagi “Serverda TypeScript-ni ishga tushirish” va 259-betdagi “Brauzerda TypeScript-ni ishga tushirish” bo‘limlariga qoldiramiz .

maqsad


TSC o'rnatilgan transpiler JavaScript-ning aksariyat xususiyatlarini eski Java-ga aylantirishni qo'llab-quvvatlaydi.
Skript versiyalari, ya'ni siz kodingizni eng so'nggi TypeScript versiyasida yozishingiz va uni qo'llab-quvvatlashingiz kerak bo'lgan JavaScript versiyasiga ko'chirishingiz mumkin. TypeScript JavaScript-ning eng so'nggi xususiyatlarini qo'llab-quvvatlaganligi sababli (masalan, async / await , yozish paytida barcha asosiy JavaScript platformalarida qo'llab-quvvatlanmaydi), siz deyarli har doim o'z kodingizni o'zgartirish uchun ushbu o'rnatilgan transpilerdan foydalanasiz. NodeJS va brauzerlar bugungi kunda tushunadigan narsa.
Keling, TSC JavaScript-ning qaysi o'ziga xos xususiyatlarini ko'rib chiqamiz va eski JavaScript versiyalari uchun transpilyatsiya qilmaydi ( 12-2-jadval va 12-3-jadval ).48
I lgari, JavaScript tilining yangi tahriri har bir necha yilda bir marta chiqarildi, til versiyasi (ES1, ES3, ES5, ES6). 2015-yildan boshlab, JavaScript tili endi yillik nashr davriga ega boʻlib, har bir til versiyasi chiqarilgan yili nomi bilan ataladi (ES2015, ES2016 va boshqalar). Biroq, ba'zi JavaScript xususiyatlari aniq JavaScript versiyasi uchun mo'ljallangan bo'lishidan oldin TypeScript yordamini oladi; biz ushbu xususiyatlarni "ESNext" deb nomlaymiz (keyingi tahrirda bo'lgani kabi).
12-2-jadval. TSC transpilyatsiya qiladi


Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   193   194   195   196   197   198   199   200   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling