ทางออกที่รวดเร็วและสกปรกคือการส่งไปยังอย่างชัดเจน any
(y as any).x
"ความได้เปรียบ" คือการส่งสัญญาณจะชัดเจนแม้จะมีการnoImplicitAnyตั้งค่าสถานะ
ทางออกที่เหมาะสมคือการอัพเดตไฟล์นิยามการพิมพ์
โปรดทราบว่าเมื่อคุณแปลงตัวแปรเป็นanyคุณจะไม่ใช้การตรวจสอบชนิดสำหรับตัวแปรนั้น
เนื่องจากฉันอยู่ในโหมดปฏิเสธความรับผิดชอบการร่ายคู่ผ่านทางanyรวมกับส่วนต่อประสานใหม่จะมีประโยชน์ในสถานการณ์ที่คุณ
- ไม่ต้องการอัปเดตไฟล์การพิมพ์ที่ใช้งานไม่ได้
- กำลังทำการปะของลิง
แต่คุณยังต้องการรูปแบบการพิมพ์บางอย่าง
สมมติว่าคุณต้องการแพทช์คำจำกัดความของอินสแตนซ์yของประเภทOrginalDefด้วยคุณสมบัติใหม่xของประเภทnumber:
const y: OriginalDef = ...
interface DefWithNewProperties extends OriginalDef {
x: number
}
const patched = y as any as DefWithNewProperties
patched.x = .... //will compile
HTMLElementและมีgetBBoxคุณสมบัติเพิ่มเติมได้ วิธีนี้คุณจะยังคงได้รับโค้ดที่สมบูรณ์ในคุณสมบัติอื่น ๆ