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