მჭირდება თუ არა ანონიმურ ფუნქციას ჯავასკრიპტში/ტიპსკრიპტში დაბრუნების ტიპის მითითება?
მე მაქვს შემდეგი ფუნქცია:
$('td:eq(' + iColumn + ') input', oSettings.oApi._fnGetTrNodes(oSettings))
.each(function () {
aData.push(this.value);
});
TypeScript-ში მელის სახით მივიღე შეტყობინება:
Error 3 Function declared a non-void return type, but has no return expression
რატომ მივიღე ეს შეტყობინება? მე შემიძლია გავაგრძელო შეტყობინება იმის თქმით, რომ "return true". ყოველთვის უნდა გამოვაცხადო დაბრუნების ტიპი ამისთვის?
პასუხი #1
jquery.d.ts ფაილში typescript რეპოზიტორიაზე .each() ფუქნციის სიგნატურა არის:
each(func: (index: any, elem: Element) => JQuery);
jQuery-ის დოკუმენტაცია ამბობს, რომ
ჩვენ შეგვიძლია გავჩერდეთ ლუპი კოლბექ ფუნქციიდან false-ის დაბრუნებით.
რაც გულისხმობს იმას, რომ ეს jquery.d.ts ცრუა.
თუ აიღებთ განახლებულ ვერსიას ბორის იანკოვის რეპოზიტორიდან, იგი გახდება:
each(func: (index: any, elem: Element) => any);
ეს ფორმა საშუალებას მოგცემთ დაბრუნოთ ყველაფერი ან არაფერი.
