ค้นหาเว็บไซต์

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.