Programming TypeScript


Download 1.81 Mb.
bet36/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   32   33   34   35   36   37   38   39   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

ruxsat bering myFirstLanguage = Til . rus // Til ruxsat mySecondLanguage = Til [ 'inglizcha' ] // Til
226-betdagi “Deklaratsiyani birlashtirish” ga o'ting ). Ehtiyot bo'ling, siz raqamingizni ajratganingizda, TypeScript faqat ushbu deklaratsiyalardan biri uchun qiymatlarni chiqarishi mumkin, shuning uchun har bir enum a'zosiga aniq qiymat belgilash yaxshi amaliyotdir:
enum Til { Ingliz tili = 0 ,
ispancha = 1
}
enum Til { Rus = 2
}
Siz hisoblangan qiymatlardan foydalanishingiz mumkin va ularning barchasini belgilashingiz shart emas (TypeScript nima etishmayotganini aniqlash uchun qo'lidan kelganini qiladi):
enum Til { Ingliz tili = 100 ,
ispancha = 200 + 300 ,
rus // TypeScript 501 ni chiqaradi (500 dan keyingi keyingi raqam)
}
Shuningdek, siz raqamlar uchun satr qiymatlaridan foydalanishingiz yoki hatto qator va raqam qiymatlarini aralashtirishingiz mumkin:
enum Rang {
Qizil = '#c10000' ,
Moviy = '#007ac1' ,
Pushti = 0xc10050 , // O'n oltilik harf Oq = 255 // O'nli harf
}
ruxsat bering qizil = Rang . Qizil // Rang bering pushti = Rang . Pushti // Rang
TypeScript sizga qulaylik uchun qiymat va kalit bo'yicha raqamlarga kirish imkonini beradi, ammo bu tezda xavfli bo'lishi mumkin:
ruxsat bering a = Rang . Qizil // Rang
ruxsat bering b = Rang . Yashil // Xato TS2339: "Yashil" xususiyati mavjud emas
// "Typeof Color" turi bo'yicha. ruxsat bering c = Rang [ 0 ] // string let d = Rang [ 6 ] // qator (!!!)
Rangni [6] ololmasligingiz kerak , lekin TypeScript sizni to'xtatmaydi! Biz TypeScript-dan konst enum bilan xavfsizroq enum xatti-harakatlariga kirish orqali bunday xavfli kirishning oldini olishni so'rashimiz mumkin . Keling, Til raqamimizni avvalgidan qayta yozamiz :
const enum Til {
Ingliz tili ,
ispan ,
rus
}
// Yaroqli enum kalitiga kirish a = Til . Ingliz // Til
// Yaroqsiz enum kalitiga kirish
ruxsat bering b = Til . Tagalog // Xato TS2339: "Tagalog" xususiyati mavjud emas // "Til turi" bo'yicha.
// Yaroqli enum qiymatiga kirish
ruxsat bering c = Til [ 0 ] // Xato TS2476: const enum a'zosi faqat bo'lishi mumkin // string literal yordamida kirish.
// Yaroqsiz enum qiymatiga kirish
ruxsat bering d = Til [ 6 ] // Xato TS2476: const enum a'zosi faqat bo'lishi mumkin // string literal yordamida kirish.
Const enum teskari qidirishga ruxsat bermaydi va shuning uchun odatdagi JavaScript ob'ekti kabi ishlaydi. Bundan tashqari, u sukut boʻyicha hech qanday JavaScript kodini yaratmaydi va uning oʻrniga enum aʼzosining qiymatini u qayerda ishlatilmasin, qatorga kiritadi (masalan, TypeScript Language.Spanish tilining har bir takrorlanishini uning qiymati bilan almashtiradi, 1 ).
T SC bayrog'i: preserveConstEnums

const enum inlining boshqa birovning TypeScript kodidan const enumni import qilganingizda xavfsizlik muammolariga olib kelishi mumkin : agar enum muallifi siz TypeScript kodini kompilyatsiya qilganingizdan so‘ng o‘zining const enum kodini yangilasa , sizning raqamingiz va ularning versiyasi boshqacha bo‘lishi mumkin. ish vaqtidagi qiymatlar va TypeScript aqlliroq bo'lmaydi.
Agar siz const enum s dan foydalansangiz, ularni qatorga kiritmaslikdan ehtiyot bo'ling va ulardan faqat o'zingiz nazorat qiladigan TypeScript dasturlarida foydalaning: ularni NPMda nashr qilishni rejalashtirayotgan dasturlarda ishlatmang yoki boshqalar uchun foydalanishga ruxsat bering. kutubxona.
const enum s uchun ish vaqti kodini yaratishni yoqish uchun tsconfig.json faylida preserveConstEnums TSC sozlamasini true ga almashtiring :
{

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   206




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