ჯავასკრიპტ - 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. პროგი, რადგან ფუნქცია განსაზღვრულია მიმდინარე სქოპზე (არა კლასის მეთოდში).
