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


TypeScript nodes.isIdentifier函数代码示例

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


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

示例1: apply

function apply(node: ts.Node, state: State): State {
    if (isBinaryExpression(node) && isAssignmentBinaryExpression(node) && isIdentifier(node.left)) {
        const symbol = state.checker.getSymbolAtLocation(node.left);
        if (symbol !== undefined) {
            const id = symbol.id;
            const key = toKey(id);
            const registration = bk.atOrElseAdd(state.all, key, () => ({
                node: undefined,
                wasReassigned: true
            }));
            registration.wasReassigned = true;
        }
    } else if (isVariableDeclaration(node) && isIdentifier(node.name)) {
        const symbol = state.checker.getSymbolAtLocation(node.name);
        if (symbol !== undefined) {
            const registration = bk.atOrElseAdd(state.all, node.name.text, () => ({
                node: undefined,
                wasReassigned: false
            }));
            const hasLetModifier = node.parent !== undefined && (node.parent.flags & ts.NodeFlags.Let) > 0;
            const hasVarModifier = node.parent !== undefined && (node.parent.flags & ts.NodeFlags.Let) === 0 && (node.parent.flags & ts.NodeFlags.Const) === 0;
            registration.node = hasLetModifier || hasVarModifier ? node.name : undefined;
        }
    }
    return state;
}
开发者ID:aleksey-bykov,项目名称:rules,代码行数:26,代码来源:rule.ts

示例2: noUndeclaredSymbols

export default function noUndeclaredSymbols(node: ts.Node, checker: ts.TypeChecker): Issue | void {
    if (isIdentifier(node)) {
        const symbol = checker.getSymbolAtLocation(node);
        if (symbol === undefined) {
            return issueFrom(node, 'undeclared', 'undeclared');
        }
    }
}
开发者ID:aleksey-bykov,项目名称:rules,代码行数:8,代码来源:rule.ts

示例3: nameIdentifierOutOf

// AB: TODO: move to a common place
function nameIdentifierOutOf(node: ts.Node): ts.Identifier | undefined {
    if (isFunctionDeclaration(node)) {
        if (node.name !== undefined) {
            return node.name;
        } else {
            return undefined;
        }
    } else if (isClassDeclaration(node)) {
        if (node.name !== undefined) {
            return node.name;
        } else {
            return undefined;
        }
    } else if (isInterfaceDeclaration(node)) {
        return node.name;
    } else if (isPropertyDeclaration(node)) {
        return isIdentifier(node.name) ? node.name : undefined;
    } else if (isMethodDeclaration(node)) {
        return isIdentifier(node.name) ? node.name : undefined;
    } else {
        return undefined;
    }
}
开发者ID:aleksey-bykov,项目名称:rules,代码行数:24,代码来源:rule.ts

示例4: noConstantLambdas

export default function noConstantLambdas(node: ts.Node, checker: ts.TypeChecker): Issue | void {
    if (isArrowFunction(node)) {
        const body = node.body;

        if (isIdentifier(body)) {
            return isUndefined(body)
                ? issueFrom(body, 'undefined returned', 'no-undefined-lambdas')
                : verifyIdentifier(body, checker);
        }

        if (isStringLiteral(body) || isNumericLiteral(body) || isNullLiteral(body)) {
            return issueFrom(body, 'literal returned', 'no-literal-lambdas');
        }

    }
}
开发者ID:aleksey-bykov,项目名称:rules,代码行数:16,代码来源:rule.ts

示例5: viaTarget

 (node, state) => {
     if (isIdentifier(node)) {
         const identifier = node;
         state.issues = ba.fold(
             state.checks,
             state.issues,
             (issues, rule) => viaTarget(
                 identifier,
                 rule.target,
                 identifier => rule.regex.test(identifier.text)
                     ? bl.add(issues, issueFrom(node, rule.message, 'invalid-name'))
                     : issues,
                 () => issues
             )
         );
     }
     return state;
 }
开发者ID:aleksey-bykov,项目名称:rules,代码行数:18,代码来源:rule.ts

示例6: toNoPrimitiveToSelf

export default function toNoPrimitiveToSelf(node: ts.Node, checker: ts.TypeChecker): Issue | void {
    if (isCallExpression(node)) {
        if (isIdentifier(node.expression)) {
            if (node.arguments.length > 1) {
            } else if (node.arguments.length > 0) {
                if (node.expression.text === 'String') {
                    const argument = node.arguments[0]!;
                    const expressionType = checker.getTypeAtLocation(argument);
                    if (expressionType.flags & ts.TypeFlags.String) {
                        return issueFrom(node, 'string to string conversion', 'string-to-string');
                    }
                } else if (node.expression.text === 'Number') {
                    return issueFrom(node, 'number conversion', 'something-to-number');
                } else if (node.expression.text === 'Boolean') {
                    return issueFrom(node, 'boolean conversion', 'something-to-boolean');
                }
            }
        }
    }
}
开发者ID:aleksey-bykov,项目名称:rules,代码行数:20,代码来源:rule.ts

示例7: havingFirst

 havingFirst('String("hey")', isExpressionStatement, querying => {
     const node = querying.first().sure().hope(isCallExpression).sure().self();
     if (isIdentifier(node.expression)) {
         console.warn(node.expression.text);
     }
 });
开发者ID:aleksey-bykov,项目名称:rules,代码行数:6,代码来源:rule-spec.ts


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