في نسخة مطبوعة على الآلة الكاتبة كيف تعلن مجموعة من الوظائف التي تقبل سلسلة والعودة سلسلة ؟
-
13-12-2019 - |
سؤال
التحديث - سياق هذا السؤال كان قبل نسخة مطبوعة على الآلة الكاتبة 1.4.منذ هذا الإصدار ، تخميني الأول تمت بدعم من اللغة.ترى التحديث إلى الإجابة.
أستطيع أن أعلن f
أن تكون وظيفة يقبل سلسلة بإرجاع سلسلة:
var f : (string) => string
وأنا يمكن أن تعلن g
أن يكون صفيف السلسلة:
var g : string[]
كيف يمكنني أن تعلن h
أن مجموعة من "وظيفة يقبل سلسلة بإرجاع سلسلة"?
تخميني الأول:
var h : ((string) => string)[]
التي يبدو أن هناك خطأ في بناء الجملة.إذا كنت تأخذ بعيدا إضافية قوسين ثم إنها وظيفة من سلسلة مجموعة من السلسلة.
المحلول
لقد اكتشفت ذلك.المشكلة هي أن =>
وظيفة النوع الحرفي هو في حد ذاته مجرد النحوية السكر و لا يريد أن يؤلف مع []
.
كما spec يقول:
وظيفة النوع الحرفي من شكل
( ParamList ) => ReturnType
هو بالضبط ما يعادل نوع الكائن الحرفي
{ ( ParamList ) :ReturnType }
لذا ما أريده هو:
var h : { (s: string): string; }[]
كاملة سبيل المثال:
var f : (string) => string
f = x => '(' + x + ')';
var h : { (s: string): string; }[]
h = [];
h.push(f);
التحديث:
انطلاقا من هذه التغيرات المعينة على بين قوسين لن يسمح في نوع الإعلانات في 1.4 ، وبالتالي فإن "أول تخمين" في السؤال سوف أيضا تكون صحيحة:
var h: ((string) => string)[]
آخر تحديث هو في 1.4!
نصائح أخرى
بناء على بحثك، كتبت كوكبة فئة صغيرة / Sayhello: `
giveacodicetagpre.