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