👍2👎2❤1🔥1
type va interface farqi
Typenoscript bo'yicha interviewlarda beriladigan eng ko'p savol menimcha
Batafsil shu yerda: https://www.totaltypenoscript.com/type-vs-interface-which-should-you-use
#typenoscript #type #interface
@elyor_dev
Typenoscript bo'yicha interviewlarda beriladigan eng ko'p savol menimcha
type va interface farqlari bo'lsa kerak. Batafsil shu yerda: https://www.totaltypenoscript.com/type-vs-interface-which-should-you-use
#typenoscript #type #interface
@elyor_dev
👍10
Typenoscript Generic Types
Generic typelarni dynamic o'zgaruvchidek tushunish mumkin. Masalan funksiya unga berib yuborilgan argumentlar typelariga qarab har xil result qaytarishi mumkin. Bunaqa funksiya uchun typelarni yozishda aynan generic types yordamga keladi.
Misol uchun juda oddiy bo'lgan log funksiyasi, berib yuborilgan argumentni log qiladi va uni qaytaradi. Bu oddiy misol:
Bu funksiyada
Real hayotda genericslar juda ko'p va keng qo'llaniladi. Masalan yaxshi typelangan kutubxona yozish uchun. Yoki oddiy programmniy kodlarda ham genericslarsiz ancha qiyin bo'lar edi.
Batafsilroq shu yerda o'qish mumkin.
Siz genericslarni ishlatasizmi?
#typenoscript #generics
@elyor_dev
Generic typelarni dynamic o'zgaruvchidek tushunish mumkin. Masalan funksiya unga berib yuborilgan argumentlar typelariga qarab har xil result qaytarishi mumkin. Bunaqa funksiya uchun typelarni yozishda aynan generic types yordamga keladi.
Misol uchun juda oddiy bo'lgan log funksiyasi, berib yuborilgan argumentni log qiladi va uni qaytaradi. Bu oddiy misol:
function log <DynamicType> (arg: DynamicType): DynamicType {
console.log(arg)
return arg
}Bu funksiyada
DynamicType aynan generic type hisobalanadi. Tashqarida qanaqa type uzatilsa o'shani qabul qiladi:const res1 = log<number>(10) // number
const res2 = log<string>('generics') // string
Real hayotda genericslar juda ko'p va keng qo'llaniladi. Masalan yaxshi typelangan kutubxona yozish uchun. Yoki oddiy programmniy kodlarda ham genericslarsiz ancha qiyin bo'lar edi.
Batafsilroq shu yerda o'qish mumkin.
Siz genericslarni ishlatasizmi?
#typenoscript #generics
@elyor_dev
www.typenoscriptlang.org
Documentation - Generics
Types which take parameters
🔥5
Conditional Types
Kundalik kod yozayotganimizda odatda bir jarayonning natijasi boshqa jarayondan hosil bo'ladigan natijaga bog'liq bo'lishini ko'ramiz. Boshqacha qilib aytganda bir jarayonning natijasidan kelib chiqib bir nechta boshqa jarayonlar sodir bo'lishi mumkin. Bunday holat biz shart operatorlarini ishlatamiz. Javanoscript'da doim ishlatadiganlarimiz
Typenoscript'da ham typelarni yozishda o'zining shart (conditional yoki ternary) operatoridan foydalanish mumkin. Bunga misol rasmda keltirilgan.
Yuqoridagi kodning biroz boshqacha varianti:
Batafsilroq bu yerda o'qish mumkin.
#typenoscript #conditional_types
@elyor_dev
Kundalik kod yozayotganimizda odatda bir jarayonning natijasi boshqa jarayondan hosil bo'ladigan natijaga bog'liq bo'lishini ko'ramiz. Boshqacha qilib aytganda bir jarayonning natijasidan kelib chiqib bir nechta boshqa jarayonlar sodir bo'lishi mumkin. Bunday holat biz shart operatorlarini ishlatamiz. Javanoscript'da doim ishlatadiganlarimiz
if else, switch case yoki ? : .Typenoscript'da ham typelarni yozishda o'zining shart (conditional yoki ternary) operatoridan foydalanish mumkin. Bunga misol rasmda keltirilgan.
Yuqoridagi kodning biroz boshqacha varianti:
type LengthOf<T> = T extends {length: number} ? T['length'] : neverBatafsilroq bu yerda o'qish mumkin.
#typenoscript #conditional_types
@elyor_dev
👍2🔥2
Mapped Types
Kod yozish jarayonida yana bir uchrab turiladigan holat bu bir type asosida boshqa bir type yasash. Bunaqa holatda sevimli copy&paste methodidan foydalanilsa, dastur murakkablashgan sari bir type o'zgarishiga, uni copy&paste qilib hosil qilingan qolgan typelarni manual update qilishga majburlaydi. Bunday holatlarda bizga
Batasilroq o'qishni maslahat beraman: Link
P.S. type'ning barcha keylarini optional qilish uchun typenoscriptda built-in Partial<T> utility bor.
#mapped_types #typenoscript
@elyor_dev
Kod yozish jarayonida yana bir uchrab turiladigan holat bu bir type asosida boshqa bir type yasash. Bunaqa holatda sevimli copy&paste methodidan foydalanilsa, dastur murakkablashgan sari bir type o'zgarishiga, uni copy&paste qilib hosil qilingan qolgan typelarni manual update qilishga majburlaydi. Bunday holatlarda bizga
mapped types yordamga keladi. Buni xuddi js dagi Array.map() kabi tushunsa ham bo'lar. Misollar rasmlarda keltirilgan. [key in keyof T] qilib berib yuborilgan type'ning barcha key'larini olamiz, for...in ga o'xshash. Batasilroq o'qishni maslahat beraman: Link
P.S. type'ning barcha keylarini optional qilish uchun typenoscriptda built-in Partial<T> utility bor.
#mapped_types #typenoscript
@elyor_dev
🔥4👍1
Abstract classes
Abstract class'larning oddiy class'lardan farqi undan to'g'ridan to'g'ri instance olib bo'lmaydi. Bunday class'lar asosan inheritance (andoza olish) uchun ishlatiladi. Abstract class'ni hosil qilish uchun
Abstract classlarda abstract methodlar ham bo'lishi mumkin. Misol uchun rasmda Person class'dagi
Batafsilroq bu yerda o'qish mumkin.
#abstract_classes #typenoscript
@elyor_dev
Abstract class'larning oddiy class'lardan farqi undan to'g'ridan to'g'ri instance olib bo'lmaydi. Bunday class'lar asosan inheritance (andoza olish) uchun ishlatiladi. Abstract class'ni hosil qilish uchun
abstract kalit so'zi ishlatiladi. Abstract classlarda abstract methodlar ham bo'lishi mumkin. Misol uchun rasmda Person class'dagi
pray() methodi. Abstract methodlar inheritance qilgan class'da albatta implement qilinishi kerak, aks holda compiler xato beradi. Batafsilroq bu yerda o'qish mumkin.
#abstract_classes #typenoscript
@elyor_dev
Forwarded from Engineering Notes
Oxirgi paytlarda 1-2 ta o'zi ham tushunmaydigan conference yoki hackatonlarda qatnashib, o'zini zo'r mutaxassis deb hisoblaydiganlar ko'payib ketayapti. Umrida bir qator kod yozmagan IT project managerlar, matematikani bilmaydigan AIchilar, bittagina prezentatsiya bilan falon so'm yutib olgan ixtirochilar, umrida startup qilib ko'rmagan startup maslahatchilar, ... . 2-3 tasi bilan gaplashib ko'rdim, nuqul osmondan keladi, lekin gapida ma'no yo'q. Lekin shular mediaga chiqib oddiy xalq tushunmaydigan 2-3 ta termin qo'shib gapirsa odamlar "o'g'lim/qizim shunga o'xshasin" deb comment yozadi. Menga nima, o'zlarini xursand qilib yuraversin deyman-u, lekin hamma e'tibor shularda bo'lgani uchun aslida qo'lidan ish keladigan yoshlar soyada qolib ketayapti. Aslida shu qo'lidan ish keladigan qatlam haqli bo'lgan imkoniyatlar haligi "mutaxassis"larga berilib, bir tiyinga qimmat ishlarga sovurilib ketayapti.
Bu postni ko'rolmaslik deb hisoblasangiz, mayli, shunday bo'lsin.
Bu postni ko'rolmaslik deb hisoblasangiz, mayli, shunday bo'lsin.
👍14
Triple-Slash Directives
Typenoscriptda Triple-Slash Directives - bu maxsus izohlar bo'lib, ular kompilyator uchun qo'shimcha ko'rsatmalar beradi. Ular fayl boshida joylashtiriladi va uch slash (///) bilan boshlanadi. Odatda bunaqa izohlarni ba'zi config filelarda ko'rib qolamiz, masalan vite.config.ts da ko'rganlar ko'p bo'lsa kerak.
Asosiy Triple-Slash Direktivalar:
Misol uchun:
To'liqroq shu yerda o'qish mumkin.
#typenoscript #triple_slash_directives
@elyor_dev
Typenoscriptda Triple-Slash Directives - bu maxsus izohlar bo'lib, ular kompilyator uchun qo'shimcha ko'rsatmalar beradi. Ular fayl boshida joylashtiriladi va uch slash (///) bilan boshlanadi. Odatda bunaqa izohlarni ba'zi config filelarda ko'rib qolamiz, masalan vite.config.ts da ko'rganlar ko'p bo'lsa kerak.
Asosiy Triple-Slash Direktivalar:
/// <reference path="..."/> - Boshqa TypeScript fayllarini import qilish uchun ishlatiladi./// <reference types="..."/> - Tashqi kutubxonalar uchun tiplarni import qilish./// <amd-module name="..."/> - AMD modullarini nomlash./// <amd-dependency path="..."/> - AMD modullariga bog'liqliklarni ko'rsatish.Misol uchun:
/// <reference path="utils.ts" />
/// <reference types="node" />
// Kod davomi...
To'liqroq shu yerda o'qish mumkin.
#typenoscript #triple_slash_directives
@elyor_dev
✍5👍2👎1
Forwarded from MJ
Frontend/Vue bo'yicha mock intervyu ketyapti. Jonli efirda ko'rsangiz bo'ladi.
Suhbat davomida o'zingiz ham mustaqil javob berib holatingizni bilib ololasiz.
https://www.youtube.com/live/pCUjBoRlM1w?si=gENCxdmyPr_8vHdR
Suhbat davomida o'zingiz ham mustaqil javob berib holatingizni bilib ololasiz.
https://www.youtube.com/live/pCUjBoRlM1w?si=gENCxdmyPr_8vHdR
🔥4👍1
Forwarded from Ayyubxon Fargʻoniy | 0.1x engineer (Ayyubxon)
Dasturlashni oʻrganib, ishga topshirishni boshlaganingizdan keyin qancha vaqt oʻtib ishga joylashgansiz?
Anonymous Poll
23%
1-6 oy
9%
6 oy - 1 yil
9%
1-2 yil
8%
2+ yil
28%
Hali ishga joylashmadim
5%
Nima u ish?
17%
Javoblarni koʻrmoqchiman
👍1
Overload Functions
Masalan, quyidagi
Yuqoridagi misolda add funksiyasining ikkita overload varianti mavjud:
1.
2.
Overload functionsdan quyidagi use caselarda foydalansa bo'ladi:
1. Bir xil nomli, lekin turli xil ishlovchi funksiyalarni yaratish.
2. Funksiyaning turli xil versiyalarini yaratish.
3. Funksiya parametrlarining turini (tipini) aniq bilish.
React'dagi
#typenoscript #overload_functions
@elyor_dev
Overload Functions - bu bir xil nom bilan bir nechta funksiya ta'riflanishi. Bu funksiyalar parametrlarining soni va/yoki turlari bilan farq qilishi kerak.Masalan, quyidagi
add funksiyasini overload qilish mumkin:function add(a: number, b: number): number;
function add(a: string, b: string): string;
function add(a: any, b: any): any {
return a + b;
}
const sum = add(1, 2) // number
const result = add('Hello', 'World') // string
Yuqoridagi misolda add funksiyasining ikkita overload varianti mavjud:
1.
add(a: number, b: number): number - ikkita number turli parametrlarni qabul qiladi va number qaytaradi.2.
add(a: string, b: string): string - ikkita string turli parametrlarni qabul qiladi va string qaytaradi.Overload functionsdan quyidagi use caselarda foydalansa bo'ladi:
1. Bir xil nomli, lekin turli xil ishlovchi funksiyalarni yaratish.
2. Funksiyaning turli xil versiyalarini yaratish.
3. Funksiya parametrlarining turini (tipini) aniq bilish.
React'dagi
useState ga qarasak ham overload functionsni ko'rish mumkin:function useState<S>(initialState: S | (() => S)): [S, Dispatch<SetStateAction<S>>];
function useState<S = undefined>(): [S | undefined, Dispatch<SetStateAction<S | undefined>>];
#typenoscript #overload_functions
@elyor_dev
🔥3👍1
Forwarded from Ayyubxon Fargʻoniy | 0.1x engineer (Ayyubxon)
Birinchi mashina tuzatishdagi ustam (akam) bir narsani ta'kidlab aytardi:
- Agar xizmat narxini kelishmagan yoki arzonga kelishib qo'ygan bo'lsang ham, bu haqida o'ylamasdan ishni yaxshilab bajargin, ishni yaxshi qilish kerak
Agar hozir kamroq oylik olayotgan bo'lsangiz ham, o'z ishingizga professionallardek yondashishingiz kerak, oylikni kamligi ishni sifatiga ta'sir qilmasligi kerak.
Oylikni oshirish yoki boshqa yaxshiroq ishga o'tish haqida o'ylasangiz ham, hozirgi ishni yaxshilab qiling, bu bizni rizqimiz, keyinchalik shu yaxshi ish qilish odati o'zimiz bilan ketadi baribir.
$500 to'laydi oyiga, shunga yarasha ishlayman degan fikrlashda bo'lish kerakmas deb o'ylayman.
O'z ishini yaxshi bajargan odam tezroq o'sadi.
Ishxonalar almashaveradi, ammo tajriba, ko'nikma, odatlar o'zimiz bilan qoladi.
@aifarghani
- Agar xizmat narxini kelishmagan yoki arzonga kelishib qo'ygan bo'lsang ham, bu haqida o'ylamasdan ishni yaxshilab bajargin, ishni yaxshi qilish kerak
Agar hozir kamroq oylik olayotgan bo'lsangiz ham, o'z ishingizga professionallardek yondashishingiz kerak, oylikni kamligi ishni sifatiga ta'sir qilmasligi kerak.
Oylikni oshirish yoki boshqa yaxshiroq ishga o'tish haqida o'ylasangiz ham, hozirgi ishni yaxshilab qiling, bu bizni rizqimiz, keyinchalik shu yaxshi ish qilish odati o'zimiz bilan ketadi baribir.
$500 to'laydi oyiga, shunga yarasha ishlayman degan fikrlashda bo'lish kerakmas deb o'ylayman.
O'z ishini yaxshi bajargan odam tezroq o'sadi.
Ishxonalar almashaveradi, ammo tajriba, ko'nikma, odatlar o'zimiz bilan qoladi.
@aifarghani
🔥8👍1
Webstorm aytishi bo'yicha ismimni
#typo #webstorm #joke
@elyor_dev
floor ga o'zgartirishim kerak ekan.#typo #webstorm #joke
@elyor_dev
🤣19👍1
Forwarded from GDG Tashkent (Khumoyun Inoyatov)
🔥 GDG Tashkent-dan uzoq tanaffusdan keyingi birinchi kuzgi Web Dev Meetup #3 ni kutib oling!
Kelayotgan shanba kuni yurtimiz va dunyoning top kompaniyalarida faoliyat yuritadigan web-dasturchilar bilan Web Dev Meetup o’tkazamiz.
💥 Spikerlar ichida:
- Ravshan Samandarov, Oxagile;
- Diyorbek Sadullaev, Pinterest;
- Doniyor Yusupov, Uzum Market;
- Umar Sadullaev, Unicon Soft;
Tadbir to’liq o’zbek tilida bo’ladi!
👀 Sana: 7-Sentabr, 2024
🕙 Vaqt: 14:00
📍 Joy: IT Park, Muminov 7/1
Ishtirok etish narxi: BEPUL.
🎟 Ro'yxatdan o'tish uchun havola:
https://gdg.community.dev/events/details/google-gdg-tashkent-presents-web-dev-meetup-3/
* Joylar soni chegaralanganligi tufayli "First come first serve" qoidalari amal qiladi. Joy sig’imi 180 kishi. Tadbir online translatsiya qilinadi.
@gdgtashkent
Kelayotgan shanba kuni yurtimiz va dunyoning top kompaniyalarida faoliyat yuritadigan web-dasturchilar bilan Web Dev Meetup o’tkazamiz.
💥 Spikerlar ichida:
- Ravshan Samandarov, Oxagile;
- Diyorbek Sadullaev, Pinterest;
- Doniyor Yusupov, Uzum Market;
- Umar Sadullaev, Unicon Soft;
Tadbir to’liq o’zbek tilida bo’ladi!
👀 Sana: 7-Sentabr, 2024
🕙 Vaqt: 14:00
📍 Joy: IT Park, Muminov 7/1
Ishtirok etish narxi: BEPUL.
🎟 Ro'yxatdan o'tish uchun havola:
https://gdg.community.dev/events/details/google-gdg-tashkent-presents-web-dev-meetup-3/
* Joylar soni chegaralanganligi tufayli "First come first serve" qoidalari amal qiladi. Joy sig’imi 180 kishi. Tadbir online translatsiya qilinadi.
@gdgtashkent
👍2⚡1
E'lon
Yakshanba, 29-sentabr soat 21:00 da
Baribir React top! Qattiq chalg'imanglar
#titanlar_jangi #react_top
@elyor_dev
Yakshanba, 29-sentabr soat 21:00 da
titanlar jangi bo'layotgan ekan. Aytishlaricha React vs Vue and Angular emish... Jangni tomosha qilish shu yerda [link].#titanlar_jangi #react_top
@elyor_dev
🔥11👎4💯3👍2❤1