Programming TypeScript


yangi API ({ baseURL : 'https://api.mysite.com' , daraja : 'mahsulot' }) Endi variantni noto'g'ri yozsangiz nima bo'ladi? yangi


Download 1.81 Mb.
bet100/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   96   97   98   99   100   101   102   103   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

yangi API ({
baseURL : 'https://api.mysite.com' ,
daraja : 'mahsulot' })
Endi variantni noto'g'ri yozsangiz nima bo'ladi?
yangi API ({
baseURL : 'https://api.mysite.com' ,
daraja : "mahsulot" // Xato TS2345: '{tierr: string}' tipidagi argument }) // 'Options' tipidagi parametrga tayinlanmaydi.
// Ob'ekt harfi faqat ma'lum xususiyatlarni ko'rsatishi mumkin, // lekin "Tierr" "Options" turida mavjud emas.
// Siz "darajali" deb yozmoqchimisiz?
Bu JavaScript bilan ishlashda tez-tez uchraydigan xatodir, shuning uchun TypeScript uni qo'lga olishimizga yordam beradi. Ammo agar ob'ekt turlari o'z a'zolarida kovariant bo'lsa, TypeScript buni qanday ushlaydi?
Anavi:

  • {baseURL: string, cacheSize?: raqam, daraja?: 'mahsulot' turini kutgan edik . 'dev'} .

  • {baseURL: string, tierr: string} turiga o'tdik .

  • Biz kiritgan tur biz kutgan turning pastki turidir, lekin qandaydir tarzda TypeScript xato haqida xabar berishni bilardi.

ortiqcha xususiyat tekshiruvi tufayli aniqlay oldi , bu shunday ishlaydi: yangi turdagi T ob'ektni boshqa U turiga belgilashga harakat qilganingizda va T U ichida mavjud bo'lmagan xususiyatlarga ega bo'lsa , TypeScript xato haqida xabar beradi. .
Yangi ob'ekt literal turi - bu TypeScript ob'ekt literalidan chiqadigan tur. Agar oʻsha obʼyekt literali tur tasdiqidan foydalansa ( 148-betdagi “Tasdiqlash turlari” ga qarang ) yoki oʻzgaruvchiga tayinlangan boʻlsa, yangi obʼyektning literal turi oddiy obyekt turiga kengaytiriladi va uning yangiligi yoʻqoladi.
Ushbu ta'rif juda zich, shuning uchun keling, yana bir bor misolimizni ko'rib chiqamiz, bu safar mavzu bo'yicha yana bir nechta o'zgarishlarni sinab ko'raylik:
turi Variantlar = { baseURL : string kesh hajmi? : raqam daraja ?: "mahsulot" | 'dev' }
sinf API {
konstruktor ( xususiy opsiyalar : Variantlar ) {} }

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   96   97   98   99   100   101   102   103   ...   206




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