Typescript

Azer
Pragmatech
Published in
3 min readNov 26, 2023

TypeScript nədir?

TypeScript — JavaScript-in bir çox çatışmalarını düzəltmiş bir proqramlaşma dilidir. TypeScript-də olan kod JS-dəkilərinə çox bənzəyir və əgər front-end inkişaf təcrübəniz varsa, TypeScript öyrənmək çox sadədir. Xüsusən də siz JS kodunu doğrudan TS skriptlərində yazmağa imkan veriləndə.

TypeScript-də yazılan kod JS-ə kompilyasiya olunur və kodu hansısa brauzer üçün nəzərdə tutulmuş JS versiyasına çevirə bilərsiniz — əsasən ki, kodun kompilyasiya olunduğu JS versiyasını seçə bilərsiniz.

TypeScript açıq mənbəli bir layihədir, buna görə də çox sürətlə inkişaf edir. TS-də görünən bir çox şey daha sonra JavaScript-ə keçir: məsələn, let və const, ox işarəli funksiyalar və s.

Gəlin, TS-nin JS qarşısında iki əsas üstünlüyünü araşdıraq.

Strong typing

JavaScriptdəki bir çox problemlər dinamik tipizasiya və ümumiyyətlə məlumat növlərinin qəribə davranışı səbəbindən yaranır:

TypeScript-də tipizasiya statikdir, bu isə bir çox problemdən azad edir. Nöqtəvi tip, sıralı tip, məntiqi tip və s. kimi müxtəlif tip növləri mövcuddur. Həmçinin enum kimi öz tip növlərinizi təsvir etmək mümkündür:

//Direction adlı enum yaradırıq, ki, onda istiqamətlər (yuxarı, aşağı, sola, sağa və heç bir yerdə) var.
enum Direction
{
Up,
Down,
Left,
Right,
None
}

//D dəyişəninə istiqamət göstərə bilərsiniz.
let d : Direction = Direction.Up;

Təkmilləşdirilmiş OOP

JS və TS-də OBÜ-də dəstək var: siniflər, obyektlər, miras. Ancaq TypeScript bir addım daha sürüşdürüb və OOP-in daha çox imkanından istifadə edir. Bu, məsələn, interfeyslər kimi, daxildir:

//İnterfeys yaradırıq
interface IPost
{
id: number;
text: string;
}

//İnterfeysi reallaşdıran klassdar yaradırıq
class Message implements IPost
{
id: number;
text: string;
senderId: number;
recieverId: number;
}

class ArticleComment implements IPost
{
id: number;
text: string;
senderId: number;
articleId: number;
}

Başqa bir böyük üstünlük — giriş modifikatorları. TypeScript-də üç ədəd var: public, privateprotected. İstifadəsinin nümunəsi aşağıdakılardır:

class User
{
//Global skobda unavaible class members
private id: number;
private login: number;

constructor(id: number, login: number)
{
this.id = id;
this.login = login;
}

//Aksessor
public GetId(): number
{
return this.id;
}

//Aksessor
public get Login(): number
{
return this.login;
}
}

Həmçinin, başqa imkanlar da mövcuddur:

konstruktor üçün sahələrin təyin edilməsi; növ dəyişikliyi; abstract siniflər; üniversal proqramlaşdırma və s. Gələcəkdə, bu hamısı JavaScript-də görünə bilər, amma brauzerlər belə imkanları dəstəkləməyə ən çox çox vaxt alar.

TypeScript’in Dezavantajları

Developerlər bu dili sevir və bəzi böyük layihələr artıq ona keçid edir. Məsələn, məşhur Angular.JS frameworku. Amma bu, JavaScript kimi tələbat edilən kimi tələbat edilmir. Bu, veb tətbiqinin TypeScript-də inkişaf etdirilməsinin daha bahalı olduğu və daha çox vaxt aldığı üçündir.

Xüsusən də, əgər TypeScript-ə port olunmamış bəzi kitabxana və ya framework istifadə etmək lazımdırsa. Bu halda developerlərə öz-özlər müəyyən etmələri (məlumat növlərini göstərmələri) lazım olan bütün funksiyaların və metodların imzalarını yazmağa ehtiyac olacaq — çağdaş kitabxanaların ölçüsünü nəzərə alsaq, bu çox uzun müddət tələb edən bir prosesdir.

Həmçinin, TypeScript-ə giriş barədə təcrübə səviyyəsi daha yüksəkdir — onun üstünlüklərindən istifadə etmək üçün məlumat növlərini və obyekt-orientasiya proqramlaşdırmadan anlamaq vacibdir.

--

--