TypeScript'теги типтуу өзгөрмөлөр
Женериктер түшүнүгүн жакшыраак түшүнүү үчүн бирінчи функциябызды - өздүк функция - түзөлү. Мындай функция ага берилген нерсени так кайтарып берет - ошол эле тип менен.
Алгач функциябыздын варианттарын өз-өзүнчө жазалы.
Параметри катары санды кабыл алып, санды кайтаруучу функция жазалы:
function func(data: number): number {
return data;
}
Эми параметри катары сапты кабыл алып, сапты кайтаруучу функция жазалы:
function func(data: string): string {
return data;
}
Эми мунун баарын бир функция аткарышы керек болгонун каалайлы. Башкача айтканда, биз жалпылоону аткарышкыбыз келет.
Бул үчүн биз типтуу өзгөрмөнү колдонобуз, ал маалыматтар тибин өзүнө сактайт. Мындай өзгөрмө
функциянын параметрлер тизмеси бар тегерек кашаадан мурун бурчтуу кашаа ичинде жарыяланат. Келгиле, андай өзгөрмөнү
аны T деп атап (же каалаган башка ат менен) жарыялайлы:
function func <T>(бул жерде параметрлер) {
return data;
}
Андан кийин бизде T өзгөрмөсү пайда болот,
аны параметрдин тибин салып, андан кийин
аны кайтаруучу маани катары көрсөтүү үчүн колдонсо болот.
Параметрибизге тибин өзгөрмөбүздүн түрүндө көрсөтөлү:
function func <T>(data: T) {
return data;
}
Натыйжада параметр каалаган типте берилиши мүмкүн болот,
жана ал тип биздин T өзгөрмөбүзгө сакталат.
Эми T өзгөрмөсүнүн маанисин функциянын натыйжасын көрсөтүү үчүн колдонолу:
function func <T>(data: T): T {
return data;
}
Эми функциянын натыйжасынын тиби параметрдин тибинен алынат болот. Келгиле текшерип көрөлү.
Функцияны сан менен чакыралы:
console.log( func(3) ); // 3 деп чыгарат
Функцияны сап менен чакыралы:
console.log( func('x') ); // 'x' деп чыгарат
Параметри катары эки санды же эки сапты кабыл алган функция жасагыла. Функция өз натыйжасы катары параметрлердин суммасын кайтарышы керек.