@babel/babel-plugin-proposal-decorators的使用

@babel/plugin-proposal-decorators

安装

npm install -D @babel/plugin-proposal-decorators

注: 为了让vscode 支持decorator语法, 需要在tsconfig.ts中进行如下设置

{
	"experimentalDecorators": true,
}

作用

插件会支持类的装饰器语法, 包括类装饰器, 属性装饰器, 方法装饰器

参数

decoratorsBeforeExport

boolean, 默认是false
export 语法是否在装饰器之前

// decoratorsBeforeExport: false
export @decorator class A {}

// decoratorsBeforeExport: true
@decorator
export class A {}

legacy

boolean, 默认是false
同插件**@babel/plugin-proposal-class-properties的参数legacy**的配置相同, 两个插件一般连着用, 配置如下

{
  "plugins": [
    ["@babel/plugin-proposal-decorators", { "legacy": true }],
    ["@babel/plugin-proposal-class-properties", { "loose" : true }]
  ]
}

功能

源码

function isTestable(value: boolean) {
  return function decorator(target: any) {
    target.isTestable = value;
  };
}
@isTestable(true)
class MyClass {}

编译后得效果

var _dec, _class;
function isTestable(value) {
  return function decorator(target) {
    target.isTestable = value;
  };
}
let MyClass =
  ((_dec = isTestable(true)), _dec((_class = class MyClass {})) || _class);

其他

关于装饰器, 请查看阮一峰的装饰器讲解

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值