Es ist möglich, void
als Typparameter für die generische Funktion in TypeScript anzugeben. Und es funktioniert gut für Rückgabewerte von Funktionen. Wenn void
jedoch ein Typ eines Arguments ist, ist es nicht so klar, welcher Wert dafür verwendet werden kann. Gibt es eine Möglichkeit, einen Parameter für ein Argument vom Typ void
anzugeben? Wenn nein, warum ist es möglich, eine solche Funktion zu deklarieren?
Es stellte sich heraus, dass es sehr einfach ist, einen Wert von void zu erhalten. Obwohl es technisch immer noch der Wert undefined
ist, aber TypeScript glaubt, dass es vom Typ void ist, was genau das ist, was wir brauchen:
Aus der TypeScript-Spezifikation :
HINWEIS: Wir könnten es in Betracht ziehen, Variablen des Typs Void nicht zu deklarieren, da sie keinem nützlichen Zweck dienen. Da Void jedoch als Typargument für einen generischen Typ oder eine generische Funktion zulässig ist, ist es nicht möglich, Void-Eigenschaften oder -Parameter zu verbieten.
Es ist möglich, void
als Typargument zu verwenden, aber Sie sollten es nicht als Typ verwenden.
Tatsächlich ist es zwar möglich, sie in einer Typ-Annotation zu verwenden, aber es ist unmöglich, einen Wert zuzuweisen:
%Vor%Die Verwendung von void als Typargument ist unten dargestellt:
%Vor% Das Argument type in dieser Klasse wird verwendet, um den Rückgabetyp einer Funktion anzugeben. Das bedeutet, dass ich angeben möchte, dass die Funktion den Typ void
hat. Also muss es als Typargument erlaubt sein.
Wenn ich jetzt den Aufruf von example.process
schreibe, sagt mir die automatische Vervollständigung, dass das übergebene Argument dem folgenden Typ entsprechen muss:
Und es wird mir auch sagen, dass example.process
selbst in diesem Fall ist .
Es ist nicht beabsichtigt, dass void
jemals verwendet wird, um einen Typ zu kommentieren, aber da es berechtigte Gründe dafür gibt, es als Typargument zuzulassen, wird es derzeit nicht geprüft. Es bedeutet, dass Sie etwas ungültiges erstellen können, aber Sie würden es schwer haben, es zu verwenden:
In diesem ungültigen Beispiel (das keine Fehler anzeigt) können Sie keinen Aufruf an example.process
schreiben, weil Sie kein gültiges Argument übergeben konnten.
Tags und Links typescript