الآلة الكاتبة:لماذا هذا ليس خطأ في النوع؟

StackOverflow https://stackoverflow.com//questions/12687045

  •  12-12-2019
  •  | 
  •  

سؤال

أحاول فهم درجة استنتاج النوع في العمل في TypeScript.في المثال التعليمات البرمجية التالي، لماذا fooتنفيذ baz.esplode صالح؟ما أفهمه هو أن الطريقة الفارغة تتطابق void.

interface bar {
    horace: number;
}

interface baz {
    esplode: (string, number) => bool;
}

interface bazzer extends bar, baz { }

var foo: bazzer = {
    horace: 12,
    esplode: function () { }
}

var x = foo.esplode('crackers', 2);

شكرًا!

هل كانت مفيدة؟

المحلول

شكرا لإلقاء نظرة!

وهذا في الواقع خطأ.عندما تتم كتابة دالة في سياقها، يجب أن نتعامل معها كما لو كان هناك تعليق توضيحي لنوع الإرجاع يمثل نوع الإرجاع المقصود (حسب القسم 4.9 من مواصفات اللغة)، لذلك أنت على حق في أنه يجب أن يكون هناك خطأ.

لدي بالفعل حل لهذه المشكلة، ولكن هل يمكنك الإبلاغ عن خطأ على موقع CodePlex حتى يتمكن فريقنا من تتبعه؟يمكنني دفع الإصلاح إلى فرع التطوير الخاص بنا بعد ظهر هذا اليوم.

شكرًا لك مرة أخرى!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top