मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन मुझे हाल ही में एक ऐसे ही मुद्दे का सामना करना पड़ा, जिसे इस तरह से हल नहीं किया जा सकता था, क्योंकि मुझे एक विशिष्ट प्रकार के खाली सरणी को वापस करना था।
मैं था
return [];
प्रकार कहाँ []थाCriminal[]
न तो return: Criminal[] [];है और न ही return []: Criminal[];मेरे लिए काम किया।
पहली नज़र में मैंने इसे वापस करने से ठीक पहले टाइप किया हुआ वैरिएबल (जैसा आपने सही बताया है) बनाकर इसे हल किया , लेकिन (मुझे नहीं पता कि जावास्क्रिप्ट इंजन कैसे काम करते हैं) यह ओवरहेड बना सकता है और यह कम पठनीय है।
संपूर्णता के लिए मैं इस समाधान को अपने उत्तर में भी रिपोर्ट करूंगा:
let temp: Criminal[] = [];
return temp;
आखिरकार मुझे टाइपस्क्रिप्ट टाइप कास्टिंग मिली, जिसने मुझे समस्या को अधिक संक्षिप्त और पठनीय (और शायद कुशल) तरीके से हल करने की अनुमति दी:
return <Criminal[]>[];
आशा है कि यह भविष्य के पाठकों की मदद करेगा!