[Fixed] What is ?. in Angular / Type Script

Issue

I am new to the front end development and I am self learning Angular (11.2.10). I came across this piece of in a sample project in the html template written by someone else and is used at bunch of places:

<div #itemsList [currentItemId]="item?.id"></div>

I am wondering for what ?. is used for here? I want to learn more about it. Even I am not sure if it is part of TS or Angular?

What should I search for to learn about this expression in the official documentation of Angular/TS?

May be I have not covered that topic yet in my learning yet. Any information in this regard will be greatly appreciated.

Update:

Based on answers by polyglot and liyaxing I found what I looking for – Optional Chaining

Also, similar question was asked here too

Safe navigation operator (?.) or (!.) and null property paths

But since I didn’t know what I was looking for, I wish not to delete this question.

Solution

It’s a kind of ternary operator in Typescript such that if object item exists and contains id property, then item.id is picked up; otherwise, null is picked up. It’s used when the object is nullable. Therefore your code is identical to the following:

<div #itemsList [currentItemId]="item? item.id : null"></div>

Leave a Reply

(*) Required, Your email will not be published