TypeScript: typ powrotu void przekonwertowany na dowolny typ?

Wydaje się, że nie jestem w stanie zrozumieć, dlaczego poniższy kod nie powoduje błędu:

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

Wyraźnie stwierdzam, że typ powinien być tablicą funkcji, które zwracająvoid, jednak pcham tam funkcję, która zwraca astring a mimo to kompilator nie narzeka. Jeśli zmienię definicjęrg do

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

Kompilator zaczyna narzekać.

Czy jest to błąd, czy to, jak powinien działać typ powrotu pustki (tzn. Wszystko idzie, jeślivoid jest używany, co czyni go tym samym co typ powrotuany)?

questionAnswers(2)

yourAnswerToTheQuestion