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

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) ดังนั้นการอัปเดตเป็นเวอร์ชันล่าสุด (หรือปิดใช้งานมันไปเลย) ก็แก้ปัญหาได้