ทางออกที่รวดเร็วและสกปรกคือการส่งไปยังอย่างชัดเจน 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
คุณสมบัติเพิ่มเติมได้ วิธีนี้คุณจะยังคงได้รับโค้ดที่สมบูรณ์ในคุณสมบัติอื่น ๆ