[英]Declaring babel plugins for @babel/eslint-parser in .eslintrc
[英]Babel plugins - Member access with index
我正在写一个babel插件。 我遇到了一个需要使用索引运算符的地方。 这是我想要获得a[Symbol.something](b)
,但是,我似乎无法找到一种方法来做到这一点。 我尝试过这样的事情:
types.callExpression(
types.memberExpression(types.Identifier('a'),
types.memberExpression(types.Identifier('Symbol'), types.Identifier('something'))
),
[types.Identifier('b')]
)
但是,它会抛出错误TypeError: Property property of MemberExpression expected node to be of a type ["Identifier","PrivateName"] but instead g ot "MemberExpression"
。 我搜索了我的问题,但我似乎无法找到办法。
您应该使用MemberExpression
computed
参数。
例如,
types.MemberExpression( types.Identifier('foo'), types.Identifier('bar') );
将生成foo.bar
,而
types.MemberExpression( types.Identifier('foo'), types.Identifier('bar'), true );
将生成foo[bar]
。
因此,您的代码应该是:
types.CallExpression(
types.MemberExpression(
types.Identifier('a'),
types.MemberExpression(types.Identifier('Symbol'), types.Identifier('something')),
true
),
[types.Identifier('b')]
);
这将生成a[Symbol.something](b)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.