Programming TypeScript


turi ElementType2 < T > = T kengaytiradi


Download 1.81 Mb.
bet118/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   114   115   116   117   118   119   120   121   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

turi ElementType2 < T > = T kengaytiradi ( chiqarish U )[] ? U : T turi B = ElementType2 < raqam [] > // raqam
Ushbu oddiy misolda ElementType ElementType2 ga teng . Infer bandi yangi turdagi o'zgaruvchini qanday e'lon qilganiga e'tibor bering , U -TypeScript siz ElementType2 ga o'tkazgan T narsangiz asosida kontekstdan U turini chiqaradi .
Shuningdek, nima uchun biz U ni T bilan birga oldindan e'lon qilish o'rniga inline deb e'lon qilganimizga e'tibor bering . Agar biz buni oldindan e'lon qilganimizda nima bo'lar edi?
turi ElementUgly < T , U > = T uzaytiradi U [] ? U : T
turi C = ElementUgly < raqam [] > // TS2314 xatosi: "ElementUgly" umumiy turi // 2 turdagi argument(lar)ni talab qiladi.
Uh-oh. ElementUgly ikkita umumiy turni, T va U ni aniqlaganligi sababli , biz ElementUgly ni yaratishda ikkalasini ham kiritishimiz kerak . Lekin agar shunday qilsak, bu birinchi navbatda ElementUgly turiga ega bo'lish nuqtasini yo'qotadi ; u qo'ng'iroq qiluvchiga U hisoblash yukini yuklaydi , biz ElementUgly turini o'zi hisoblashini xohlaganimizda.
massiv elementlarining turini qidirish uchun kiritish operatori ( [] ) allaqachon mavjud. Yana murakkab misol haqida nima deyish mumkin?
turi SecondArg < F > = F kengaytiradi ( a : har qanday , b : xulosa B ) => har qanday ? B : hech qachon
// Array.slice turini oling F = turiof Massiv [ 'prototype' ][ 'slice' ] turi A = SecondArg < F > // raqam | aniqlanmagan
Demak, [].slice ning ikkinchi argumenti | sonidir aniqlanmagan . Va biz buni kompilyatsiya vaqtida bilamiz - buni Java-da bajarishga harakat qiling. O'rnatilgan shartli turlar
Shartli turlar sizga tur darajasida ba'zi kuchli operatsiyalarni ifodalash imkonini beradi. Shuning uchun TypeScript global miqyosda mavjud bo'lgan bir nechta shartli turlari bilan birga yuboriladi: Exclude
Oldingi bizning Without turimiz kabi, T da U da bo'lmagan turlarni hisoblaydi :

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   114   115   116   117   118   119   120   121   ...   206




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