ฉันรู้ว่านี่เป็นคำถามเก่า แต่เมื่อเร็ว ๆ นี้ฉันพบปัญหาที่คล้ายกันซึ่งไม่สามารถแก้ไขได้ด้วยวิธีนี้เนื่องจากฉันต้องส่งคืนอาร์เรย์ที่ว่างเปล่าของประเภทเฉพาะ
ฉันมี
return [];
ที่[]
เป็นCriminal[]
ประเภท
ทั้งreturn: Criminal[] [];
มิได้return []: Criminal[];
ทำงานให้ฉัน
ตอนแรกฉันแก้ไขมันโดยการสร้างตัวแปรที่พิมพ์ (ตามที่คุณรายงานอย่างถูกต้อง) ก่อนที่จะส่งคืน แต่ (ฉันไม่รู้ว่า JavaScript ทำงานอย่างไร) มันอาจสร้างโอเวอร์เฮดและสามารถอ่านได้น้อยกว่า
สำหรับความละเอียดถี่ถ้วนฉันจะรายงานวิธีแก้ปัญหานี้ในคำตอบของฉันด้วย:
let temp: Criminal[] = [];
return temp;
ในที่สุดฉันก็พบว่าการพิมพ์ TypeScript ซึ่งทำให้ฉันสามารถแก้ปัญหาด้วยวิธีที่กระชับและอ่านง่ายขึ้น (และอาจมีประสิทธิภาพ):
return <Criminal[]>[];
หวังว่านี่จะช่วยผู้อ่านในอนาคต!