本文整理匯總了TypeScript中@babel/types.identifier函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript identifier函數的具體用法?TypeScript identifier怎麽用?TypeScript identifier使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了identifier函數的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: createVariableCallAST
export function createVariableCallAST(
name: string,
method: string,
args: (Expression | SpreadElement)[],
) {
return callExpression(
memberExpression(createVariableAST(name), identifier(method)),
args,
);
}
示例2: addLoc
originalDeclarations.forEach(function(decl) {
newDeclarations.push(decl);
if (!decl.init) {
decl.init = addLoc(ignoredIdentifier("undefined"), decl.loc);
}
if (decl.id.type === "ArrayPattern") {
// declaration are inserted into pattern already
} else if (decl.id.type === "ObjectPattern") {
// declarations are inserted into object pattern already
} else {
newDeclarations.push(
t.variableDeclarator(
addLoc(getTrackingIdentifier(decl.id.name), decl.id.loc),
skipPath(
t.callExpression(
t.identifier(FunctionNames.getLastOperationTrackingResult),
[]
)
)
)
);
}
});
示例3: require
import template from "@babel/template";
import generate from "@babel/generator";
import * as t from "@babel/types";
const buildRequire = template.statement(`
var IMPORT_NAME = require(SOURCE);
`);
const ast1 = buildRequire({
IMPORT_NAME: t.identifier("myModule"),
SOURCE: t.stringLiteral("my-module")
});
console.log(generate(ast1).code);
const ast2 = template.ast(`
var myModule = require("my-module");
`);
const fn = template.statement`
var IMPORT_NAME = require('${"my-module"}');
`;
const ast3 = fn({
IMPORT_NAME: t.identifier("myModule")
});
console.log(generate(ast3).code);
declare const mod: string;
示例4: identifier
const m = method.split('.').map(i => identifier(i));
示例5: createVariableAST
export function createVariableAST(name: string) {
return callExpression(
memberExpression(identifier('Variable'), identifier('find')),
[identifier('gameModel'), stringLiteral(name)],
) as VariableAST;
}
示例6: 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)]
)
)
);
}
});
示例7: plugin
function plugin(babel) {
const { types: t } = babel;
function handleFunction(path) {
const declarators: any[] = [];
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)]
)
)
);
}
});
// keep whole list in case the function uses `arguments` object
// We can't just access the arg tracking values when `arguments` is used (instead of doing it
// at the top of the function)
// That's because when we return the argTrackingValues are not reset to the parent function's
declarators.push(
t.variableDeclarator(
ignoredIdentifier("__allArgTV"),
ignoredCallExpression(FunctionNames.getFunctionArgTrackingInfo, [])
)
);
const d = t.variableDeclaration("var", declarators);
skipPath(d);
if (path.node.body.type !== "BlockStatement") {
// arrow function
path.node.body = ignoreNode(
t.blockStatement([ignoreNode(t.returnStatement(path.node.body))])
);
}
//.........這裏部分代碼省略.........