void als Typ eines Arguments einer generischen Funktion in TypeScript

8

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?

    
Aleksey Bykov 14.01.2014, 18:00
quelle

4 Antworten

0

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:

%Vor%     
Aleksey Bykov 20.01.2014, 13:45
quelle
7

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.

    
C Snover 14.01.2014 20:10
quelle
4

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.

%Vor%

Wenn ich jetzt den Aufruf von example.process schreibe, sagt mir die automatische Vervollständigung, dass das übergebene Argument dem folgenden Typ entsprechen muss:

%Vor%

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:

%Vor%

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.

    
Fenton 14.01.2014 23:20
quelle
0

Sie können so etwas tun:

%Vor%

Ich benutze Typescript 1.8.7 und es funktionierte für mich gut.

    
OvidiuG 10.03.2016 18:59
quelle

Tags und Links