Gibt es eine Möglichkeit, während der Laufzeit zwischen einer Klasse (nicht ihrer Instanz!) Und einer Funktion in TypeScript zu unterscheiden?So können Sie zwischen einer Klasse und einer Funktion unterscheiden
Normalerweise werden Klassen in Typoskripts in Javascript-Funktionen umgewandelt und während der Laufzeit konnte ich keine nette Methode finden, um zu überprüfen, ob ein Bezeichner eine Funktion oder eine Klassenart ist!
Zum Beispiel:
function func1() {
\t
}
class class1 {
\t
}
// ugly hack
(<any>class1.prototype).isclass = true;
// ugly hack test
function is_class(clazz:any) {
\t return (
\t \t clazz
\t \t && clazz.prototype
\t \t && (<any>clazz.prototype).isclass === true
\t);
}
console.log(typeof(func1) === 'function'); // returns true !!
console.log(typeof(class1) === 'function'); // returns true !!
console.log(is_class(func1)); // returns false :)
console.log(is_class(class1)); // returns true :)
Alle Ideen für eine bessere Lösung? Danke.
Dies sieht aus wie eine sauberere Lösung. Ich muss beide Unit-Tests durchlaufen und das Ergebnis sehen. Vielen Dank :) – gevik