Qual è il punto interrogativo per in un nome di parametro Typescript

export class Thread { id: string; lastMessage: Message; name: string; avatarSrc: string; constructor(id?: string, name?: string, avatarSrc?: string) { this.id = id || uuid(); this.name = name; this.avatarSrc = avatarSrc; } } 

In id? qual è il ? per?

Questo per rendere la variabile di tipo Nullable. Altrimenti le variabili dichiarate mostrano ” indefinito ” se questa variabile non viene utilizzata.

 export interface ISearchResult { title: string; listTitle:string; entityName?: string, lookupName?:string, lookupId?:string }