Ich bin mir nicht sicher, was Sie versuchen, aber es scheint wie Sie versuchen, eine Funktion zu definieren, die einen von mehreren Typen zurückgibt. Zum Beispiel würde die Funktion entweder Typ1 oder Typ2 zurückgeben. Wenn die beiden Typen keine gemeinsame Funktionalität haben, müssen Sie den Typ überprüfen, bevor Sie eine andere Methode für das zurückgegebene Objekt aufrufen.
Angenommen, die zurückgegebenen Objekte do teilen eine gemeinsame Funktionalität, wäre es besser, dies in einer Schnittstelle zu definieren und dann zu deklarieren, dass jeder zurückzugebende Objekttyp diese Schnittstelle implementiert.
Also als ein Beispiel.
interface CommonStuff {
someFunction();
someOtherFunction();
}
class Type1 implements CommonStuff {
someFunction() {}
someOtherFunction() {}
}
class Type2 implements CommonStuff {
someFunction() {}
someOtherFunction() {}
}
Dann haben einfach Ihre Funktion eine Art von CommonStuff Rückkehr vermeidet
returnTypes(str:String) : CommonStuff {
let x : Type1;
let y : Type2;
...
const z = someCondition ? x : y ;
return z;
}
Diese benötigen den Typ später
const something = returnTypes("blah);
something.someFunction(); // you know something has a someFunction() method.
diese Lösung zu prüfen, das Problem nicht lösen, am Ende Sobald Funktion das Ergebnis zurückgibt, gibt es zurück, welches ist es "Type1" oder "Type2"? – PRAISER