turi Dialog = { id? : string }
funktsiyasi closeDialog ( dialog : Dialog ) { if ( ! dialog . id ) { qaytish
}
setTimeout (() => removeFromDOM ( muloqot oynasi ,
hujjat . getElementById ( dialog . id ) // TS2345 xatosi: turdagi argument // 'string | undefined' tayinlanmaydi // 'string' tipidagi parametrga.
)
)
}
funktsiyasi removeFromDOM ( muloqot oynasi : Dialog , element : Element ) {
element . parentNode . removeChild ( element ) // Xato TS2531: Ob'ekt bo'lishi mumkin
//' null'. o'chirish dialog . identifikatori }
Agar dialog allaqachon o'chirilgan bo'lsa (shuning uchun uning identifikatori yo'q ), biz ertaroq qaytamiz.
Biz dialog oynasining keyingi bosqichida DOM dan dialogni olib tashlaymiz, shunda dialogga bog'liq bo'lgan boshqa kodlar ishlashni tugatish imkoniyatiga ega bo'ladi.
Biz o‘q funksiyasi ichida bo‘lganimiz uchun endi biz yangi doiradamiz. TypeScript ba'zi kodlar va o'rtasidagi dialogni mutatsiyaga uchraganligini bilmaydi , shuning uchun biz kiritgan aniqlashtirishni bekor qiladi . Buning ustiga, agar dialog.id aniqlangan bo'lsa, DOMda shu identifikatorga ega element aniq mavjudligini bilsak ham (chunki biz o'z ramkamizni shunday yaratganmiz), TypeScript shuni biladiki, docu ment.getElementById ga qo'ng'iroq qilish HTMLElement | null . Biz bilamizki, u har doim null bo'lmagan HTMLElement bo'ladi , lekin TypeScript buni bilmaydi — u faqat biz bergan turlar haqida biladi.
Shunga o'xshab, dialog oynasi aniq DOMda ekanligini va uning asosiy DOM tuguniga ega ekanligini bilsak ham, TypeScript hamma narsani biladi: element.parentNode turi Node | null .
if (_ === null) tekshiruvlarini qo'shishdir . Agar biror narsa null yoki yo'qligiga ishonchingiz komil bo'lmasa, buni qilishning to'g'ri usuli bo'lsa-da, TypeScript null emasligiga ishonchingiz komil bo'lganingizda maxsus sintaksis bilan birga keladi | aniqlanmagan :
Do'stlaringiz bilan baham: |