მჭირდება თუ არა ანონიმურ ფუნქციას ჯავასკრიპტში/ტიპსკრიპტში დაბრუნების ტიპის მითითება?


მე მაქვს შემდეგი ფუნქცია:

    $('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);

ეს ფორმა საშუალებას მოგცემთ დაბრუნოთ ყველაფერი ან არაფერი.