Sobes.tech
Junior — Middle

Оё метавонед мақсади ва истифодаи оператори Infer дар TypeScript-ро шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

оператори infer дар TypeScript дар дохили намудҳои шартидодашуда барои кашф кардани намуд аз намудҳои дигар истифода мешавад. Он имкон медиҳад, тағйирёбандаи намудро эълон кунад, ки TypeScript автоматӣ онро муайян мекунад, агар шароит иҷро шавад.

Ин барои гирифтани намуд аз сохтори мураккаб, масалан, намуд аз унсури массив, арзиши баргардонидашудаи функсия ва ғайра, кӯмак мекунад.

Маслиҳат барои истифода:

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : any;

function foo() {
  return 42;
}

type FooReturn = ReturnType<typeof foo>; // FooReturn хоҳад буд number

Ин ҷо, infer R мегӯяд: агар намуд T функсия бошад, намуди арзиши баргардонидашударо кашф кунед ва ба R таъин кунед. Агар шароит иҷро нашуд, any баргардонида мешавад.

Ин тариқ, infer кӯмак мекунад, намудҳои бештар чандир ва қувватманд созед, намудҳои дохилӣ аз намудҳои дигар кашф кунед.