Programming TypeScript


turi Jurnal = ( xabar : string , userId? : string ) => bekor


Download 1.81 Mb.
bet48/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   44   45   46   47   48   49   50   51   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

turi Jurnal = ( xabar : string , userId? : string ) => bekor

ruxsat bering jurnal : jurnal = ( xabar ,
Foydalanuvchi IDsi = "Tizimga kirmagan"
) => {
ruxsat bering vaqt = yangi Sana (). toISOString () konsoli . jurnal ( vaqt , xabar , userId )}

Biz funktsiya ifodasi jurnalini e'lon qilamiz va uni Log turi sifatida aniq yozamiz .
Parametrlarimizni ikki marta izohlashimiz shart emas. Xabar allaqachon Log uchun ta'rifning bir qismi sifatida satr sifatida izohlanganligi sababli , biz uni bu yerga qayta kiritishimiz shart emas. Buning o'rniga, TypeScript-ga buni Log dan biz uchun chiqarishga ruxsat beramiz .
userId uchun standart qiymatni qo‘shdik , chunki biz Log uchun imzomizda userId turini yozib oldik, lekin standart qiymatni Logning bir qismi sifatida qo‘lga kirita olmadik , chunki Log bu tur va qiymatlarni o‘z ichiga olmaydi.
Qaytish turiga yana izoh berishning hojati yo'q, chunki biz allaqachon jurnal turida uni bekor deb e'lon qilgan edik .

Kontekstli yozish


E'tibor bering, oxirgi misol biz ko'rgan birinchi misol bo'lib, biz funktsiya parametrlari turlarini aniq izohlashimiz shart emas edi. Biz allaqachon jurnalning Log turida ekanligini e'lon qilganimiz sababli , TypeScript kontekstdan xabar string turida bo'lishi kerak degan xulosaga kelishi mumkin . Bu kontekstli yozish deb nomlangan TypeScript turi xulosasining kuchli xususiyatidir .
Ushbu bobning boshida biz kontekstli yozish paydo bo'ladigan yana bir joyga to'xtalib o'tdik: qayta qo'ng'iroq qilish funksiyalari.20
Har safar joriy indeksni f ga o'tkazib, f qayta qo'ng'iroqni bir necha marta n deb chaqiradigan funktsiya vaqtlarini e'lon qilaylik :
funktsiyasi marta ( f : ( indeks : raqam ) => bekor ,
n : raqam
) {
uchun ( ruxsat i = 0 ; i < n ; i ++ ) {
f ( i )
}
}
times ga qo'ng'iroq qilganingizda , agar siz ushbu funktsiyani inline deb e'lon qilsangiz, vaqtga o'tadigan funktsiyaga aniq izoh berishingiz shart emas :
marta ( n => konsol . jurnal ( n ), 4 )
TypeScript kontekstdan n son degan xulosaga keladi — biz f ning argument indeksi vaqtlar imzosidagi raqam ekanligini e'lon qildik va TypeScript n bu argument, shuning uchun u raqam bo'lishi kerak degan xulosaga kelish uchun yetarlicha aqlli .
f ni inline e'lon qilmaganimizda , TypeScript uning turini aniqlay olmas edi:
funktsiyasi f ( n ) { // TS7006 xatosi: "n" parametri bilvosita "har qanday" turga ega. konsol . log ( n ) } marta ( f , 4 )

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   44   45   46   47   48   49   50   51   ...   206




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