javascript - Typescript แจ้งข้อผิดพลาดที่ promise.then
พิจารณาโค้ดต่อไปนี้:
Promise.resolve('hello')
.then(a => console.log(a))
.catch(() => console.log("error"))
.then(() => console.log("ok"));
นี่ทำให้ฉันได้รับข้อผิดพลาดที่น่ารำคาญมาก:
พารามิเตอร์ที่ส่งมาไม่ตรงกับลายเซ็นของเป้าหมายที่เรียก: คาดว่าจะมี 0 พารามิเตอร์แต่ถูกเรียกด้วย 1 พารามิเตอร์
โปรดทราบว่าฉันได้รับสิ่งนี้เพียงสำหรับ .then(...) ครั้งแรกเท่านั้น ส่วน catch และ then ที่สองดูเหมือนไม่มีปัญหา
เพื่อเป็นการบันทึก; โค้ดทำงานได้และส่งออกผลลัพธ์
hello
ok
บางทีฉันก็ควรจะบอกด้วยว่ามันสามารถคอมไพล์ได้จริงๆ ฉันเห็นข้อผิดพลาดใน Visual Studio 2017 เมื่อฉันไปที่คำจำกัดความของ then มันจะเปิด lib.es6.d.ts การคอมไพล์เกิดขึ้นกับ webpack 4 ที่ใช้ TypeScript 2.8.3 ใน Visual Studio ฉันได้ติดตั้ง TypeScript 2.8.1 (หา 2.8.3 ไม่เจอ)
ถ้ามีใครสามารถอธิบายให้ฉันเข้าใจได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น และยิ่งดีถ้าบอกด้วยว่าจะกำจัดมันอย่างไร; ฉันจะซาบซึ้งมาก
คำตอบ #1
ฉันมีปัญหาเดียวกัน และตามที่ความคิดเห็นโดย @JBC บอกไว้ มันเกิดจาก ReSharper ในกรณีของฉัน ฉันใช้เวอร์ชันค่อนข้างเก่า (2017.1.1) ดังนั้นการอัปเดตเป็นเวอร์ชันล่าสุด (หรือปิดใช้งานมันไปเลย) ก็แก้ปัญหาได้