javascript-Babel插件-带有索引的成员访问

前端之家收集整理的这篇文章主要介绍了javascript-Babel插件-带有索引的成员访问 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在写一个babel插件.我遇到了需要使用索引运算符的地方.这是我想要获取[Symbol.something](b)的代码,但是,我似乎找不到解决方法.我试图做这样的事情:

types.callExpression(
    types.memberExpression(types.Identifier('a'),types.memberExpression(types.Identifier('Symbol'),types.Identifier('something'))
    ),[types.Identifier('b')]
)

但是,它引发错误TypeError:MemberExpression的期望节点的Property属性为类型[“ Identifier”,“ PrivateName”],但是改为g
ot“ MemberExpression”.我用Google搜索了我的问题,但似乎找不到解决方法.

最佳答案
您应该使用MemberExpression的计算参数.

例如,

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')]
);

这将生成一个[Symbol.something](b).

猜你在找的JavaScript相关文章