@babel/plugin-proposal-class-properties的使用

@babel/plugin-proposal-class-properties

安装

npm install -D @babel/plugin-proposal-class-properties

作用

插件会将类中的属性编译

参数

loose

boolean, 默认是false
当为false的时候, 属性会通过Object.defineProperty的方式为对象赋值, 为true的时候, 直接通过点语法赋值

功能

源码

class A{
	foo!: string
	bar: string = "bar";
	static rogen = "rogen";
}

参数 loose = true 编译后得效果

class A{
	construtor(){
		this.foo = void 0 
		this.bar = 'bar'
	}
}
A.rogen = 'rogen'

参数 loose = false 编译后得效果

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

class A{
	construtor(){
	    _defineProperty(this, "bar", "rogen");
    	_defineProperty(this, "foo", void 0);
	}
}
_defineProperty(A, "rogen", "rogen");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值