برای استفاده از جنریکها در تایپ اسکریپت، باید یک متغیر نوع type variable را در تعریف تابع، کلاس، رابط یا نوع مستعار خود اضافه کنیم. این متغیر نوع type به ما امکان میدهد تا نوع داده را به عنوان یک پارامتر در نظر بگیریم و با آن کار کنیم. شما میتوانید از علامت <> برای مشخص کردن متغیر نوع استفاده کنید. برای مثال:
function identity<Type>(arg: Type): Type { return arg;}
اینجا ما یک تابع جنریک با نام identity ساختهایم که یک آرگومان و یک خروجی از نوع Type دارد. میتوانیم هنگام فراخوانی تابع، نوع Type را به صورت صریح یا خودکار مشخص کنیم:
let output1 = identity<string>(“myString”); // explicit
let output2 = identity(“myString”); // implicit
ما همچنین میتوانیم جنریکهای خود را با قیدهای extends محدود کنیم، مقادیر پیش فرض default values برای آنها تعریف کنیم، و آنها را در کلاسها، رابطها و نوع مستعارهای خود استفاده کنیم.
به عنوان مثال، میتوانیم یک تابع بسازیم که یک آرایه array را دریافت کرده و اولین عنصر آن را برگرداند. برای این کار، میتوانید از یک متغیر نوع Type استفاده کنید که به عنوان نوع آرایه و نوع بازگشت تابع قرار می گیرد:
function firstElement<Type>(arr: Type[]): Type | undefined { return arr[0];}
حالا میتوانید این تابع را با هر نوع دادهای فراخوانی کنید:
let numbers = [1, 2, 3];
let firstNumber = firstElement(numbers); // firstNumber is number
let words = [“hello”, “world”];
let firstWord = firstElement(words); // firstWord is string