ich will eine überladene Funktion wieflowtype: Wie kann ich Funktionsrückgabetypen durch Argumentzählung/Typen überladen?
function first(n?: number) {
if (number === undefined) {
// returns a single Item
return items[0];
}
// returns an array of Item
return items.slice(0, n);
}
so dass diese Aussagen überprüfen Typ definieren:
const item: Item = first(); // no args, so return type is Item
const items: Array<Item> = first(5); // number arg, so return type is Array<Item>
Flow weiß, dass der erste Aufruf von first
in n === undefined
führen wird (da es sich beschweren würde wenn undefined
war nicht gültig für n
) und es versteht, dass es dann die if-Zweig nehmen wird, so würde ich denken, es könnte die Rückgabetyp ist Item
, aber alles, was ich versucht habe entweder lässt alles passieren oder immer scheitert.
eine Idee, wenn das möglich ist? Danke im Voraus Internet.
ja ... das funktioniert! Ich kann nicht sagen, dass ich wirklich verstehe, warum du die 'any'-Besetzung brauchst ... aber es funktioniert. Vielen Dank. und ich wusste auch nicht von dieser "tryflow" -Seite, das ist super nützlich für das Fiedeln. – nrser
Nur eine Warnung, durch Casting ist unsicher. Sie erhalten keine Typprüfung für die Rückgabewerte. –