本文整理汇总了TypeScript中@babel/types.expressionStatement函数的典型用法代码示例。如果您正苦于以下问题:TypeScript expressionStatement函数的具体用法?TypeScript expressionStatement怎么用?TypeScript expressionStatement使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了expressionStatement函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: BinaryExpression
}
}
});
// Examples from https://github.com/thejameskyle/babel-handbook/blob/master/translations/en/plugin-handbook.md#writing-your-first-babel-plugin
const v1: Visitor = {
BinaryExpression(path) {
if (t.isIdentifier(path.node.left)) {
// ...
}
path.replaceWith(
t.binaryExpression("**", path.node.left, t.numericLiteral(2))
);
path.parentPath.replaceWith(
t.expressionStatement(t.stringLiteral("Anyway the wind blows, doesn't really matter to me, to me."))
);
path.parentPath.remove();
},
Identifier(path) {
if (path.isReferencedIdentifier()) {
// ...
}
if (t.isQualifiedTypeIdentifier(path.node, path.parent)) {
// ...
}
},
ReturnStatement(path) {
path.replaceWithMultiple([
开发者ID:AlexGalays,项目名称:DefinitelyTyped,代码行数:31,代码来源:babel__traverse-tests.ts
示例2: plugin
//.........这里部分代码省略.........
if (path.node.body.type !== "BlockStatement") {
// Technically it might not be safe to make this conversion
// because it affects scoping for let/const inside the body
// ...although that's not usually what you do inside a for in body
path.node.body = ignoreNode(
babel.types.blockStatement([path.node.body])
);
}
const body = path.node.body.body;
let forInRightValueIdentifier = ignoreNode(
path.scope.generateUidIdentifier("__forInRightVal")
);
// insertBefore causes this ForInStatement to be visited again
// if a block body is introduced for the parent (e.g. if the parent
// was a single-statement if statement before)
// Prevent processing this ForInStatement twice
path.node.ignore = true;
path.insertBefore(
ignoreNode(
t.variableDeclaration("let", [
t.variableDeclarator(forInRightValueIdentifier, path.node.right)
])
)
);
path.node.right = forInRightValueIdentifier;
var assignment = ignoreNode(
t.expressionStatement(
ignoreNode(
t.assignmentExpression(
"=",
ignoredIdentifier(getTrackingVarName(varName)),
ignoredCallExpression(
FunctionNames.getObjectPropertyNameTrackingValue,
[forInRightValueIdentifier, ignoredIdentifier(varName)]
)
)
)
)
);
body.unshift(assignment);
if (isNewVariable) {
var declaration = ignoreNode(
// Note: this needs to be let or else there could be conflict with
// a var from parent scope
t.variableDeclaration(varKind, [
t.variableDeclarator(ignoredIdentifier(getTrackingVarName(varName)))
])
);
body.unshift(declaration);
}
}
};
Object.keys(operations).forEach(key => {
var operation = operations[key];
key = key[0].toUpperCase() + key.slice(1);
if (operation.visitor) {
if (visitors[key]) {
开发者ID:mattzeunert,项目名称:fromjs,代码行数:67,代码来源:babelPlugin.ts
注:本文中的@babel/types.expressionStatement函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论