Typinferenz mit Unionstypen - Es gibt keinen am besten geeigneten Typ.

Also, ich spiele mit Typinferenz in TypeScript. Ich werde zwei Beispiele bereitstellen, die beim Aufrufen dieselben Ergebnisse liefern, in einem von ihnen kann TypeScript den Typ jedoch aufgrund von "Kein bester gemeinsamer Typ" nicht herleiten.

Beispiel mit ternärem Operator

function foo(a: boolean) {
    return a ? 4 : true;
}

Der Compiler folgert, dass foo @ i(a: boolean) => number | boolean das ist genial.

Beispiel mit if-Anweisung

function foo(a: boolean) {
    if (a) {
        return 4;
    } else {
        return true;
    }
}

Der Compiler beschwert sich über "No best common type", wenn er versucht, den Rückgabetyp abzuleiten. Es verwirrt mich, wenn Anweisungen mit der Typinferenz in Konflikt geraten sollten. Woher

Antworten auf die Frage(2)

Ihre Antwort auf die Frage