TypeScript: tipo de retorno void convertido para qualquer tipo?
Eu pareço não ser capaz de compreender porque o seguinte código não gera erro:
var rg: {(): void;}[] = [];
rg.push(function():string {return "";})
Eu afirmo claramente que o tipo deve ser uma matriz de funções que retornamvoid
, no entanto eu empurro lá uma função que retorna umstring
e ainda o compilador não reclama. Se eu mudar a definição derg
para
var rg: {():number;}[] = [];
O compilador começa a reclamar.
Isso é um bug ou é como o tipo de retorno void deve funcionar (ou seja, vale tudo sevoid
é usado, basicamente, tornando-o igual ao tipo de retornoany
)