5.7 āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĄā§āĻā§āϰā§āĻāϰā§āϏ
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻšāϞ⧠āĻĢāĻžāĻāĻļāύ⧠āĻĒāĻžāĻ āĻžāύ⧠āĻā§āϝāĻžāϞ⧠āĻŦāĻž āĻāϰā§āĻā§āĻŽā§āύā§āĻāĨ¤.āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĄā§āĻā§āϰā§āĻāϰ āĻ āĻŋāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĄāĻŋāĻā§āϞāĻžāϰā§āĻļāύā§āϰ āĻāĻā§ āĻĄāĻŋāĻā§āϞā§ā§āĻžāϰ āĻāϰāĻž āĻšā§āĨ¤
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĄā§āĻā§āϰā§āĻāϰā§āϰ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻšāĻŋāϏā§āĻŦā§ āϰāĻžāύāĻāĻžāĻāĻŽā§Â āĻāϞ āĻšā§ āĻāĻŦāĻ āĻāϤ⧠āϤāĻŋāύāĻāĻž āĻāϰā§āĻā§āĻŽā§āύā§āĻ āĻĨāĻžāĻāĻŦā§āĨ¤
ā§§āĨ¤Â target: āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻŽā§āĻŽā§āĻŦāĻžāϰā§āĻ°Â āĻā§āώā§āϤā§āϰ⧠āĻā§āϞāĻžāϏāĻāĻŋāϰ āĻāύā§āϏāĻā§āϰāĻžāĻā§āĻāϰ āĻĢāĻžāĻāĻļāĻ¨Â āĻ āĻĨāĻŦāĻžÂ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ  āĻŽā§āĻŽā§āĻŦāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻā§āϞāĻžāϏāĻāĻŋāϰ āĻĒā§āϰāĻā§āĻāĻžāĻāĻĒÂ
⧍āĨ¤ propertyKey: āĻŽā§āĻŽā§āĻŦāĻžāϰāĻāĻŋāϰ āύāĻžāĻŽ
ā§ŠāĨ¤ parameterIndex: āĻĢāĻžāĻāĻļāύā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϞāĻŋāϏā§āĻā§ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻ āϰāĻāĻŋāύāĻžāϞ āĻāύāĻĄā§āĻā§āϏ
āĻāĻ āĻĄā§āĻā§āϰā§āĻāϰā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻāĻāϰāĻŖ āϏāϰāĻžāϏāϰāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž āύā§āĻāĨ¤ āĻāĻŋāύā§āϤ⧠āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§ āĻŦāĻžāϧāĻž (intercept) āĻĻāĻŋāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻžāĻ āϏāĻŽā§āĻĒāύā§āύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻāĻžāĻŦā§ āĻāĻāĻāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻā§āϝāĻžāϞ⧠āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ⧠āĻāĻŽāϰāĻž āĻāĻāĻžāϧāĻŋāĻ āĻĄā§āĻā§āϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āĻāĻŋāύā§āϤ⧠āϤāĻž āĻŦāĻžāĻāϰā§āϰāϤāĻŽ āĻĨā§āĻā§ āĻāĻŋāϤāϰā§āϰāϤāĻŽ āĻ āϰā§āĻĄāĻžāϰ⧠āĻāĻžāĻ āĻāϰāĻŦā§āĨ¤
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĄā§āĻā§āϰā§āĻāϰā§āϰ āϰāĻŋāĻāĻžāϰā§āύ āĻā§āϝāĻžāϞ⧠āĻāĻĒā§āĻā§āώāĻŋāϤ āĻšā§āĨ¤
āĻāĻāύ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻā§āĻĄ āĻāĻĻāĻžāĻšāϰāĻŖ āϞāĻā§āώā§āϝ āĻāϰāĻŋ:
function LogParameter(
target: Object,
propertyKey: string | symbol,
parameterIndex: number
) {
console.log(
`Parameter decorator called on ${String(
propertyKey
)} at index ${parameterIndex}`
);
}
class ParameterDecoratorExample {
findSquare(@LogParameter value: number) {
console.log(`Square of ${value} is, ${value * value}`);
}
}
const example = new ParameterDecoratorExample();
example.findSquare(4);
āĻāĻāĻāĻĒā§āĻ:
Parameter decorator called on findSquare at index 0
Square of 4 is, 16
āĻāĻ āĻāĻĻāĻžāĻšāϰāĻŖā§Â LogParameter āĻĢāĻžāĻāĻļāύ āĻāĻāĻāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĄā§āĻā§āϰā§āĻāϰ āϝāĻžÂ ParameterDecoratorExample āĻā§āϞāĻžāϏā§āĻ°Â findSquare āĻĢāĻžāĻāĻļāύā§āϰ āĻā§āϝāĻžāϞ⧠āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ⧠āĻĒā§āϰā§ā§āĻ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āĻĄā§āĻā§āϰā§āĻāϰāĻāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋāϰ āĻŦā§āϝāĻžāĻĒāĻžāϰ⧠āĻāĻŋāĻā§ āĻāύāĻĢāϰā§āĻŽā§āĻļāύ āϞāĻ āĻāϰāĻŦā§ āϝāĻž āĻāĻŽāϰāĻž āĻĒā§āϰā§āĻĒāĻžāϰā§āĻāĻŋ āĻā§ (Key) āĻāϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻāύāĻĄā§āĻā§āϏ āĻĨā§āĻā§ āĻĒāĻžāĻāĨ¤