2017-03-26 3 views

Antwort

2

Diese sind nicht gleichwertig.

In der ersten Funktion wird standardmäßig ein Fehler ausgegeben. In der zweiten Funktion ist der Standardfall error === res.message || res.statusText.

Was hier heißt: "hey, es ist möglich, dass res.message und res.statusText nicht definiert ist. Wenn das der Fall ist, gibt es einen Konflikt mit error: string." Um die Logik im if-block-Beispiel nachzuahmen, müssten Sie die Fehlerbehandlung hinzufügen. Here is a working example.

function handleError(url: string, res: ResponseType): void { 
    let error: string; 
    if (!res.message || !res.statusText) { 
    throw new Error(); 
    } 
    const error: string = res.status === 440 ? 
    'Session Timeout' : 
    res.message || res.statusText; 

    setTopState({error}); 
} 

Die Dokumentation beschreibt diese unter "Refinement Invalidations".