ეს property modifikatorები აკონტროლებენ არის თუ არა property აუცილებელი და შეიძლება თუ არა მისი გადაკეთება.
Optional (?)
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
ეს property modifikatorები აკონტროლებენ არის თუ არა property აუცილებელი და შეიძლება თუ არა მისი გადაკეთება.
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
Opcionali property-ს ტიპი T | undefined აქვს, ამიტომ კომპილატორი აზიდულებთ იმ შემთხვევის დამუშავებას, როდესაც ის არ არსებობს — თავიდან აიცილებთ "cannot read property of undefined" ხარვეზებს.
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 1, y: 2 };
p.x = 5; // ❌ Error: cannot assign to readonly property
// arrays too
const nums: readonly number[] = [1, 2, 3];
nums.push(4); // ❌ push doesn't exist on readonly array
readonly მხოლოდ კომპილაციის დროს მოქმედებს (runtime-ზე არ არის აკრძალვა), მაგრამ ის დოკუმენტირებს და აკრძალავს immutability-ს ტიპ სისტემაში, აჭერი შემთხვევით ცვლილებებს.
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? აყალიბებს ნამდვილად ოპციონალურ მონაცემებს და აკრძალავს null-safety-ს; readonly გამოხატავს და აკრძალავს immutability-ს (გამოსადეგია config-ისთვის, props-ისთვის და შემთხვევითი state mutation-ის თავიდან აცილებისთვის).
ორივე აღთავსებს სისწორის შემოწმებას კომპილატორში.
IT გასაუბრების კითხვების ბიბლიოთეკა დეტალური პასუხებით — Junior-დან Senior-მდე.
შემოწირულობა