Sei que essa é uma pergunta antiga, mas recentemente enfrentei um problema semelhante que não pôde ser resolvido dessa maneira, pois tive que retornar uma matriz vazia de um tipo específico.
eu tinha
return [];
onde []
estavaCriminal[]
tipo.
Nem return: Criminal[] [];
nemreturn []: Criminal[];
trabalhou para mim.
À primeira vista, resolvi criar uma variável digitada (como você relatou corretamente) antes de retorná-la, mas (não sei como os mecanismos JavaScript funcionam) ela pode gerar sobrecarga e é menos legível.
Para mais detalhes, também relatarei esta solução em minha resposta:
let temp: Criminal[] = [];
return temp;
Eventualmente, encontrei a conversão de tipo TypeScript, o que me permitiu resolver o problema de uma maneira mais concisa e legível (e talvez eficiente):
return <Criminal[]>[];
Espero que isso ajude futuros leitores!