Je sais que c'est une vieille question mais j'ai récemment été confronté à un problème similaire qui ne pouvait pas être résolu de cette manière, car je devais retourner un tableau vide d'un type spécifique.
J'avais
return [];
où []
était Criminal[]
type.
Ni l'un ni l'autre return: Criminal[] [];
ni return []: Criminal[];
a fonctionné pour moi.
À première vue, j'ai résolu le problème en créant une variable typée (comme vous correctement signalé) juste avant de le renvoyer, mais (je ne sais pas comment fonctionnent les moteurs JavaScript) cela peut entraîner une surcharge de travail et c'est moins lisible.
Par souci d'exhaustivité, j'indiquerai également cette solution dans ma réponse :
let temp: Criminal[] = [];
return temp;
Finalement, j'ai découvert le type casting de TypeScript, qui m'a permis de résoudre le problème d'une manière plus concise et plus lisible (et peut-être plus efficace) :
return <Criminal[]>[];
J'espère que cela aidera les futurs lecteurs !