Respuestas:
Es para marcar el parámetro como opcional .
Esto es para hacer la variable de tipo Opcional. De lo contrario, las variables declaradas muestran " indefinido " si esta variable no se utiliza.
export interface ISearchResult {
title: string;
listTitle:string;
entityName?: string,
lookupName?:string,
lookupId?:string
}
titleen el ejemplo anterior tener un valor de nullpero sería inválido para una clase que dice implementar ISearchResultque falta una entityNamepropiedad en tiempo de compilación.
string?. Para tener un anulable opcional, lo haría name?: string?.
?después de la especificación de tipo en lugar de después del nombre de la variable. Si no le pasa nada lookupId, entonces no tendrá tipo string.
parameter?: type es una abreviatura de parameter: type | undefined