A
Aysel MəmmədovaMüəllif
aysel.mammadova@example.comTypeScript 5-də 'satisfies' Operatoru və Dərin Tip Təhlükəsizliyi
Tip dəqiqliyini və avtotamamlamanı itirmədən obyektlərin uyğunluğunu yoxlamaq üçün 'satisfies' operatorunun praktik tətbiqi.
TypeScript tərtibatçıları illərdir ki, obyektləri tipə uyğunlaşdırarkən çətin bir dilemma qarşısında qalırdılar: ya dəqiq tipi qorumaq, ya da ümumi interfeysə uyğunluğu təsdiqləmək.
Gəlin bu problemin kökünə və TypeScript 4.9+ / 5.x ilə gələn inqilabi 'satisfies' həllinə baxaq.
📌 1. Köhnə Yanaşmanın Problemi
Təsəvvür edin ki, bir tema palitrası obyekti yaradırsınız:
type Colors = Record<string, string | number[]>;
Əgər siz yazsanız:
const palette: Colors = { primary: '#3b82f6', secondary: [59, 130, 246] };
Bu zaman TypeScript 'palette.primary' dəyərini artıq dəqiq 'string' kimi tanımır; onun tipi 'string | number[]' olur. Nəticədə siz 'palette.primary.toUpperCase()' çağırmaq istədikdə TypeScript xəta atır: "number[] üzərində toUpperCase mövcud deyil".
📌 2. 'satisfies' Necə Xilas Edir?
'satisfies' operatoru kodu belə yazmağa imkan verir:
const palette = {
primary: '#3b82f6',
secondary: [59, 130, 246]
} satisfies Colors;
Nə baş verir?
1. Validasiya: Obyektin 'Colors' tipinin bütün qaydalarına uyğun olduğu yoxlanılır. Əgər səhv açar və ya yolverilməz dəyər yazsanız, dərhal xəta verəcək.
2. Dəqiq Tip Çıxarışı (Inference): TypeScript dəqiq bilir ki, 'palette.primary' sətirdir, 'palette.secondary' isə rəqəm massividir. Heç bir məlumat itmir!
📌 3. Real Layihələrdə İstifadə Sahələri
- Marşrut və URL konfiqurasiyaları: Hansı yolların mövcud olduğunu dəqiq saxlamaq üçün.
- Beynəlmiləlləşdirmə (i18n) tərcümə lüğətləri: Bütün dillərdə açarların eyni olduğunu yoxlayıb, unikal mətni qorumaq üçün.
- Dizayn sistemləri və tokenlər: Stilləri mərkəzləşdirərkən IDE avtotamamlamasını maksimum gücləndirmək üçün.
←Bütün yazılara qayıtKateqoriya: TypeScript