Я знаю, что это старый вопрос, но недавно я столкнулся с аналогичной проблемой, которая не может быть решена таким образом, так как мне пришлось возвращать пустой массив определенного типа.
я имел
return [];
где []был Criminal[]тип.
Ни то, return: Criminal[] [];ни другоеreturn []: Criminal[]; у меня, у меня не получалось.
На первый взгляд, я решил эту проблему, создав типизированную переменную (как вы правильно сообщили) непосредственно перед ее возвратом, но (я не знаю, как работают движки JavaScript) это может привести к накладным расходам и стать менее читабельным.
Для полноты я также сообщу об этом решении в своем ответе:
let temp: Criminal[] = [];
return temp;
В конце концов я нашел приведение типа TypeScript, которое позволило мне решить проблему более кратким и читабельным (и, возможно, эффективным) способом:
return <Criminal[]>[];
Надеюсь, это поможет будущим читателям!