TypeScript-də type və interface
-
TypeScript statik tip təyin etmə imkanı verən JavaScript üzərində genişlənmiş bir proqramlaşdırma dilidir. Bu dildə məlumat strukturlarını daha aydın və təhlükəsiz şəkildə təsvir etmək üçün iki əsas vasitə var:
type
vəinterface
.Bunların hər ikisi obyektlərin və verilən strukturlarının formasını təsvir etmək üçün istifadə olunur. Ancaq aralarında bəzi fərqli imkanlar və istifadə məqsədləri mövcuddur.
interface
nədir?interface
– Obyektlərin strukturunu müəyyən etmək üçün istifadə olunur. Bir obyekt hansı sahələrə (fields) malik olacaq, onların tipi nə olacaq və hansılar məcburidir – bunlar interfeyslə müəyyənləşdirilir.Nümunə:
interface Person { name: string; age: number; isStudent?: boolean; // optional field }
Burada
Person
adlı interfeysname
,age
və istəyə bağlıisStudent
sahələrini müəyyən edir.
type
nədir?type
daha geniş imkanlara malikdir. O, həm obyektləri, həm də primitiv tipləri, birlik tipləri (union types), kəsişmə tipləri (intersection types) və tuple-ları təsvir edə bilər.Nümunə:
type Person = { name: string; age: number; };
Bu da
interface
-ə bənzər bir strukturdur, lakintype
ilə aşağıdakıları da edə bilərik:Union Type (bir neçə növdən biri):
type Status = "success" | "error" | "loading";
Intersection Type (birləşmiş struktur):
type Address = { city: string; }; type Employee = Person & Address;
Ortalıq Oxşarlıqları
İmkan type
interface
Obyekt strukturu yaratmaq Miras alma (inheritance) Union və intersection yaratmaq Tuple və primitive növləri müəyyənləşdirmək Yenidən açılıb sahə əlavə etmək (Declaration merging)
interface
vətype
fərqləriFərq type
interface
Quraşdırılmış genişlənmə type
&
operatoru ilə genişlənirinterface
birbaşaextends
ilə genişlənə bilərUnion, Intersection Tam dəstəklənir Dəstəklənmir Declaration merging (təkrar elan etmə) Olmaz Olur Primitiv tipləri təyin etmək Mümkündür ( type Age = number
)Mümkün deyil
Hansını nə vaxt istifadə etməli?
- Sadəcə obyekt strukturu təsvir edirsinizsə,
interface
istifadə etmək tövsiyə olunur. - Əgər union, intersection, primitiv və ya tuple növləri ilə işləyirsinizsə,
type
daha uyğun olar. - Üçüncü tərəf kitabxanalarında (
React
,Express
) tez-tezinterface
istifadə olunur.
Real dünya nümunəsi
interface User { id: number; name: string; } type Role = "admin" | "user" | "guest"; type UserWithRole = User & { role: Role; };
Burada həm
interface
, həm dətype
birlikdə istifadə olunub.
Nəticə
TypeScript-də
type
vəinterface
hər ikisi strukturların və məlumatların təhlükəsiz işlənməsi üçün çox faydalıdır. Onların düzgün seçilməsi kodun daha oxunaqlı, yenidən istifadə oluna bilən və davamlı olmasını təmin edir.Əgər sadə obyekt strukturu ilə işləyirsinizsə –
interface
, daha kompleks tip təriflərinə ehtiyac varsa –type
istifadə edin. - Sadəcə obyekt strukturu təsvir edirsinizsə,
Bilik paylaşdıqca artan bir sərvətdir