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
)?