官术网_书友最值得收藏!

Parameter decorators

Parameter decorators are prefixed to parameter declarations, and they are applied to a function for a class constructor or a method declaration. The signature of ParameterDecorator is as follows:

declare type ParameterDecorator = (target: Object, propertyKey:  
   string | symbol, parameterIndex: number) => void; 

Now, let's define the Customer class and use a parameter decorator to decorate a parameter in order to make it required and validate whether the value has been served:

class Customer { 
    constructor() {  } 
  
    getName(@logging name: string) { 
        return name; 
   } 
} 

Here, the name parameter has been decorated with @logging. The parameter decorator implicitly takes three inputs, namely prototype of the class that has this decorator, the name of the method that has this decorator, and the index of the parameter that is being decorated. The logging function implementation of the parameter decorator is as follows:

function logging(target: any, key : string, index : number) { 
  
  console.log(target); 
  console.log(key); 
  console.log(index); 
} 

Here, target is the class that has the decorator, key is the function name, and index contains the parameter index. This code just logs target, key, and index to the console.

主站蜘蛛池模板: 澄城县| 长春市| 泽州县| 且末县| 通州市| 清水县| 镇安县| 裕民县| 饶河县| 霍林郭勒市| 惠水县| 离岛区| 民丰县| 永平县| 舞阳县| 平阳县| 油尖旺区| 陆良县| 三门县| 廉江市| 娄烦县| 紫金县| 镇宁| 东山县| 阳春市| 台南市| 福鼎市| 共和县| 临颍县| 华坪县| 灵石县| 荣昌县| 健康| 内江市| 奉新县| 宜良县| 大竹县| 奈曼旗| 十堰市| 班戈县| 互助|