javascript - TypeScript จะไม่เกิดข้อผิดพลาดกับตัวแปร ANY ที่ถูกกำหนดค่าในภายหลัง
ฉันมีฟังก์ชันที่รับเพียงตัวแปรตัวเลขเท่านั้น
function add(n1: number) {
return n1 + n1;
}
และฉันเริ่มต้นตัวแปร any และกำหนดค่าเป็นสตริง '5'
let number1;
number1 = '5';
ฉันสงสัยว่า ทำไมมันถึงไม่แสดงข้อผิดพลาดเมื่อฉันพยายามส่งสตริงไปยังฟังก์ชัน?
console.log(add(number1));(แน่นอนว่ามันแสดงผลเป็น 55 เพราะสตริงถูกนำมาต่อกัน)
คำตอบ #1
หากไม่ได้ระบุชนิด (ซึ่งจะเป็น any โดยปริยาย) หรือกำหนดเป็น any การใช้งานตัวแปรนั้นจะไม่ถูกตรวจสอบชนิดข้อมูล ซึ่งมีประโยชน์หากคุณค่อย ๆ ย้ายโค้ด JavaScript ไปเป็น TypeScript
หากคุณต้องการทำเครื่องหมาย any ที่แฝงอยู่ (เช่นตัวอย่างของคุณ) เป็นข้อผิดพลาด ให้ใช้แฟลกคอมไพเลอร์ noImplicitAny.