Ich schreibe einige Definitionen für eine vorhandene JS-Bibliothek (CKEditor). Ist es möglich, genauer zu sein als toolbar: any
?
Dokumentation:
Symbolleiste: Array / String
Die Definition der Toolbox (Alias-Symbolleiste). Es ist ein Symbolleistenname oder ein Array von Symbolleisten (Strips), von denen jedes auch ein Array ist, das a enthält Liste der UI-Elemente.
Bibliothekscode:
%Vor% Natürlich müssen Sie den Wert innerhalb der Funktion überprüfen und entsprechend reagieren, aber jetzt können Sie die Kompilierzeit überprüfen, ohne den Typ in any
ändern zu müssen.
Leider unterstützt Typescript keine Union-Typen und wird dies in naher Zukunft kaum tun .
Es gibt zwei Vorschläge im Thread:
In dem gegebenen Codeabschnitt kann ich sowieso nicht den any
-Typ vermeiden. Wenn jedoch außerhalb des Snippets das Argument toolbar
als Argument übergeben wird, kann das Überladen von Funktionen möglicherweise den Typ dieser Argumente ausdrücken.
Sie könnten modellieren, dass die Symbolleiste ein Array und eine Zeichenfolge ist.
%Vor% Das besagt, dass sowohl Array- als auch String-Operationen legal sind, was nicht wirklich richtig ist und nicht viel mehr Sicherheit bietet als any
. Es gibt keine Möglichkeit zu modellieren, dass es das eine oder das andere sein kann, aber nicht beides.
Tags und Links typescript