Respostas:
É para marcar o parâmetro como opcional .
Isso é para tornar a variável do tipo opcional. Caso contrário, as variáveis declaradas mostram " indefinido " se essa variável não for usada.
export interface ISearchResult {
title: string;
listTitle:string;
entityName?: string,
lookupName?:string,
lookupId?:string
}
titleno exemplo acima tenha um valor igual a, nullmas seria inválido para uma classe que afirma implementar ISearchResulta falta de uma entityNamepropriedade em tempo de compilação.
string?. Para ter um anulável opcional, você faria name?: string?.
?especificação de tipo após em vez de após o nome da variável. Se você não passar nada para lookupId, ele não terá tipo string.
parameter?: type é uma abreviação de parameter: type | undefined