Saya tahu ini adalah pertanyaan lama tetapi saya baru-baru ini menghadapi masalah serupa yang tidak dapat diselesaikan dengan cara ini, karena saya harus mengembalikan array kosong dari tipe tertentu.
Saya punya
return [];
di mana []adalah Criminal[]jenis.
Baik return: Criminal[] [];tidak return []: Criminal[];bekerja untuk saya.
Pada pandangan pertama saya memecahkannya dengan membuat variabel yang diketik (seperti yang Anda laporkan dengan benar) tepat sebelum mengembalikannya, tetapi (saya tidak tahu bagaimana mesin JavaScript bekerja) itu dapat membuat overhead dan itu kurang dapat dibaca.
Untuk ketelitian saya akan melaporkan solusi ini dalam jawaban saya juga:
let temp: Criminal[] = [];
return temp;
Akhirnya saya menemukan casting typeScript, yang memungkinkan saya untuk menyelesaikan masalah dengan cara yang lebih ringkas dan mudah dibaca (dan mungkin efisien):
return <Criminal[]>[];
Semoga ini bisa membantu pembaca di masa depan!