Кажется, я не могу понять, почему следующий код не вызывает ошибку:
var rg: {(): void;}[] = [];
rg.push(function():string {return "";})
Я четко заявляю, что тип должен быть массивом функций, возвращающих void
, но я нажимаю туда функцию, которая возвращает string
, и все же компилятор не жалуется. Если я изменил определение rg
на
var rg: {():number;}[] = [];
Компилятор начинает жаловаться.
Является ли это ошибкой или как работает возвращаемый тип void (т.е. что-либо происходит, если используется void
, в основном делая его таким же, как тип возврата any
)?