TypeScript: ungültiger Rückgabetyp in einen beliebigen Typ konvertiert?

Ich kann anscheinend nicht nachvollziehen, warum der folgende Code keinen Fehler auslöst:

var rg: {(): void;}[] = [];
rg.push(function():string {return "";})

Ich sage klar, dass der Typ ein Array von Funktionen sein sollte, die zurückkehrenvoidIch drücke dort jedoch eine Funktion, die a zurückgibtstring und doch beschwert sich der Compiler nicht. Wenn ich die Definition von ändererg zu

var rg: {():number;}[] = [];

Der Compiler fängt an sich zu beschweren.

Ist dies ein Fehler oder ist es, wie der Rückgabetyp "void" funktionieren soll (d. H. Alles, was geht, wennvoid wird verwendet, was im Grunde genommen dem Rückgabetyp entsprichtany)?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage