当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript types.numericLiteral函数代码示例

本文整理汇总了TypeScript中@babel/types.numericLiteral函数的典型用法代码示例。如果您正苦于以下问题:TypeScript numericLiteral函数的具体用法?TypeScript numericLiteral怎么用?TypeScript numericLiteral使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了numericLiteral函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: BinaryExpression

        const node = path.node;
        if (t.isIdentifier(node) && node.name === "n") {
            node.name = "x";
        }
    }
});

// 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)) {
            // ...
        }
    },
开发者ID:AlexGalays,项目名称:DefinitelyTyped,代码行数:31,代码来源:babel__traverse-tests.ts

示例2: if

 path.node.params.forEach((param, i) => {
   if (param.type === "ObjectPattern") {
     // do nothing for now, logic is in objectpattern visitor
     // for (var n = 0; n < param.properties.length; n++) {
     //   const prop = param.properties[n];
     //   declarators.push(
     //     t.variableDeclarator(
     //       addLoc(
     //         getTrackingIdentifier(
     //           prop.value ? prop.value.name : prop.key.name
     //         ),
     //         prop.loc
     //       ),
     //       t.nullLiteral()
     //     )
     //   );
     // }
   } else if (param.type === "ArrayPattern") {
     param.elements.forEach(elem => {
       let varName;
       if (elem.type === "Identifier") {
         varName = elem.name;
       } else if (elem.type === "AssignmentPattern") {
         varName = elem.left.name;
       } else if (elem.type === "RestParameter") {
         varName = elem.argument.name;
       } else if (elem.type === "ObjectPattern") {
         // will be processed in ObjectPattern visitor
       } else {
         throw Error("aaa unknown array pattern elem type " + elem.type);
       }
       declarators.push(
         t.variableDeclarator(
           addLoc(getTrackingIdentifier(varName), param.loc),
           ignoredCallExpression(FunctionNames.getEmptyTrackingInfo, [
             ignoredStringLiteral("arrayPatternInFunction"),
             getLocObjectASTNode(elem.loc)
           ])
         )
       );
     });
   } else if (param.type === "AssignmentPattern") {
     let varName = param.left.name;
     declarators.push(
       t.variableDeclarator(
         addLoc(getTrackingIdentifier(varName), param.loc),
         ignoredCallExpression(FunctionNames.getEmptyTrackingInfo, [
           ignoredStringLiteral("arrayPatternInFunction"),
           getLocObjectASTNode(param.loc)
         ])
       )
     );
   } else if (param.type === "RestElement") {
     let varName = param.argument.name;
     declarators.push(
       t.variableDeclarator(
         addLoc(getTrackingIdentifier(varName), param.loc),
         ignoredCallExpression(FunctionNames.getEmptyTrackingInfo, [
           ignoredStringLiteral("restElement"),
           getLocObjectASTNode(param.loc)
         ])
       )
     );
   } else {
     declarators.push(
       t.variableDeclarator(
         addLoc(getTrackingIdentifier(param.name), param.loc),
         t.callExpression(
           t.identifier(FunctionNames.getFunctionArgTrackingInfo),
           [t.numericLiteral(i)]
         )
       )
     );
   }
 });
开发者ID:mattzeunert,项目名称:fromjs,代码行数:75,代码来源:babelPlugin.ts


注:本文中的@babel/types.numericLiteral函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。