装饰器

项目地址 https://github.com/LuckyChou710/ReStart-FE/tree/main/base/js/decorator

配置装饰器环境

{
  "name": "decorator",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "@babel/cli": "^7.13.16",
    "@babel/core": "^7.13.16",
    "@babel/plugin-proposal-class-properties": "^7.13.0",
    "@babel/plugin-proposal-decorators": "^7.13.15",
    "@babel/preset-env": "^7.13.15"
  },
  "scripts": {
    "start": "npx babel src/index.js --out-dir dist && node dist/index.js"
  }
}

新建 package.json 文件 复制如上内容 然后安装依赖

然后在根目录 创建文件.babelrc 配置如下内容

因为最新版的 babel 插件是可拔插的 仅仅安装是不会生效的 还需配置

最后创建 jsconfig.json 文件 写下如下配置来开启装饰器 不然编译器会给我们警告

然后新建 src 目录 在里面创建 index.js 文件 随后我们就在这个文件内书写我们的代码

修饰类

参数就是被装饰器修饰的类

修饰成员变量

有三个参数

  • target 对于静态成员来说是构造函数 对于实例成员来说是原型对象

  • name 被修饰成员的名字

  • descriptor 被修饰成员的属性描述符

具体代码如下

借助装饰器 我们就有能力改变类内部的方法和变量

Last updated

Was this helpful?