ჯავასკრიპტ - Cypress - განმეორებითი ფუნქცია while ციკლის გამოყენების ნაცვლად


დავამჩნიე, რომ როცა ვხმარობ while ციკლს, cypress არ მუშაობს, ამიტომ while ციკლის ნაცვლად მივაგენი ასეთ გადაწყვეტილებას:

const functionName = () => {
  if ( a != b ) {
    this.functionName();
  } else {
    cy.get(".selector").click()
  }
};

ეს კოდი (typescript) მართლაც კარგად მუშაობს, მაგრამ 'this' წითლად არის გამოყოფილი და გამოჩნდება შეტყობინება: "ობიექტი შესაძლოა 'undefined' იყოს."

გაქვთ რაიმე იდეა, როგორ მოვიშორო ეს შეცდომა?

პასუხი #1

მივიღოთ, რომ ეს TypeScript-ის შეცდომაა, დაამატეთ Non-null დადასტურების ოპერატორი

// Compiled with --strictNullChecks
function validateEntity(e?: Entity) {
  // Throw exception if e is null or invalid entity
}
function processEntity(e?: Entity) {
  validateEntity(e);
  let s = e!.name; // Assert that e is non-null and access name
}

ცოდნისთვის, როგორ შევიმუშაოთ „დაფიქსირდეს შეცდომა TS2533: ობიექტი შესაძლოა იყოს 'null' ან 'undefined'“, პასუხობს იმავე კითხვას.

შეიძლება საერთოდ არ გჭირდეს this. პროგი, რადგან ფუნქცია განსაზღვრულია მიმდინარე სქოპზე (არა კლასის მეთოდში).