Null-xavfsiz navigatsiya (?.)
? bilan ixtiyoriy qiymatlarni xavfsiz o‘qing. va sukut bo‘yicha ??.
Null-Xavfsiz navigatsiya (?.) nima?
?.xatolarga yo‘l qo‘ymasdan yetishmayotgan qiymatlarni o‘qiydi.- Agar biron bir segment
nullyokiundefinedbo‘lsa, natijaundefinedbo‘ladi. - Shablonlardagi chuqur xususiyat yo‘llari uchun xavfsizlikni yaxshilaydi.
Null-Xavfsiz navigatsiyadan qachon foydalanish kerak
- Xususiyatlari bo‘lmasligi mumkin bo‘lgan asinxron yoki ixtiyoriy ma’lumotlar.
- Batafsil tekshiruvlar uchun
?.(va koddagi ixtiyoriy zanjir) dan foydalaning. - bilan birlashtiring
??standart qiymatlarni taqdim etish uchun.
Misol
import { bootstrapApplication } from '@angular/platform-browser';
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
standalone: true,
template: `
<button (click)="toggle()">Toggle user</button>
<p>Email: {{ user?.profile?.email || '(none)' }}</p>
`
})
export class App {
user: { profile?: { email?: string } } | undefined = undefined;
toggle() {
this.user = this.user ? undefined : { profile: { email: 'a@example.com' } };
}
}
bootstrapApplication(App);
<app-root></app-root>
Misol tushuntirildi
- Ixtiyoriy zanjirlash (?.):
user?.profile?.emailelektron pochtani faqat foydalanuvchi va profil aniqlangan taqdirdagina o‘qiydi; aks holda butun ifodaundefined(xato yo‘q). - Zaxira qiymat:
|| '(none)'ifoda falsy bo‘lsa, o‘rinbosar matnni ko‘rsatadi;0yoki bo‘sh stringlarni yaroqli qiymat deb hisoblamoqchi bo‘lsangiz,??ni afzal ko‘ring. - Almashtirish: “Foydalanuvchini almashtirish” tugmasini bosish xavfsiz kirishni ko‘rsatish uchun
userundefinedva obyekt o‘rtasida almashtiriladi.
Nullish coalescing (??): Agar 0 yoki '' kabi haqiqiy noto‘g‘ri qiymatlarni saqlamoqchi bo‘lsangiz, a ?? b dan a || b dan foydalaning.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
