Типҳои умумии тағйирёбандаҳо дар TypeScript
Вақте ки мо функсияи навъи умумӣ эҷод мекунем, TypeScript моро ба истифодаи дурусти тағйирёбандаҳои навъӣ дар бадани он маҷбур мекунад. Аз ин рӯ, бояд рафтори ҳар як параметр, ки ба функсия интиқол дода мешавад, аз назари ҳамаи навъҳои дастрас ба мо таҳлил кард.
Биёед функсия барои муайян кардани дарозии тағйирёбандаи навъи умумӣ эҷод кунем:
function myFunc <T> (data: T): T {
console.log(data.length); // хато
return data;
}
Хато ба амал меояд, зеро ки на ҳамаи навъҳо дарозӣ доранд. Масалан, барои арзишҳои булӣ чунин амал имконнопазир аст. Аммо агар мо навъро муфассал карда чун массив ишора кунем, он гоҳ рамз дуруст кор хоҳад кард. Зеро ки ҳар як массив, навъаш чӣ бошад ҳам, дарозӣ дорад:
function myFunc <T> (data: T[]): T[] {
console.log(data.length); // 3
return data;
}
console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Функсия барои такрори ва чоп кардани ҳамаи элементҳои массив навъи умумӣ ба консол нависед.