Odpowiedzi:
Ma to na celu oznaczenie parametru jako opcjonalnego .
Ma to na celu nadanie zmiennej typu opcjonalnego. W przeciwnym razie zmienne zadeklarowane pokazują „ niezdefiniowane ”, jeśli ta zmienna nie jest używana.
export interface ISearchResult {
title: string;
listTitle:string;
entityName?: string,
lookupName?:string,
lookupId?:string
}
titlew powyższym przykładzie miałaby wartość, nullale byłaby niepoprawna w przypadku klasy, która twierdzi, że implementuje, w ISearchResultktórej brakuje entityNamewłaściwości w czasie kompilacji.
string?. Aby mieć opcjonalną wartość null, zrobiłbyś name?: string?.
?po specyfikacji typu zamiast po nazwie zmiennej. Jeśli nic nie przekażesz lookupId, to nie będzie miał typu string.
parameter?: type jest skrótem dla parameter: type | undefined