Typescript tslint:防止使用“;的规则;。名称”;获取函数/类名的步骤

Typescript tslint:防止使用“;的规则;。名称”;获取函数/类名的步骤,typescript,function,class,tslint,Typescript,Function,Class,Tslint,我正在创建一个tslint规则,以防止我的团队使用Function/Class“.name”。这是与一个问题有关的 到目前为止,我得到的是: import * as Lint from "tslint"; import * as tsutils from "tsutils"; import * as ts from "typescript"; export class Rule extends Lint.Rules.AbstractR

我正在创建一个tslint规则,以防止我的团队使用Function/Class“.name”。这是与一个问题有关的

到目前为止,我得到的是:

import * as Lint from "tslint";
import * as tsutils from "tsutils";
import * as ts from "typescript";

export class Rule extends Lint.Rules.AbstractRule {
    public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
        return this.applyWithFunction(sourceFile, walk);
    }
}

function walk(ctx: Lint.WalkContext<void>) {
    function nodeChecker(node: ts.Node): any {
        if (tsutils.isPropertyAccessExpression(node) && isUseOfNameForbidden(node.getText())) {
            ctx.addFailureAtNode(node, "The use of .name if forbidden. It'll not work after minification.");
        }

        return ts.forEachChild(node, nodeChecker);
    }

    function isUseOfNameForbidden(text: string): boolean {
        return /^[A-Z]*$/.test(text?.[0]) && text.endsWith(".name");
    }

    return ts.forEachChild(ctx.sourceFile, nodeChecker);
}
import*作为“tslint”中的Lint;
从“tsutils”导入*作为tsutils;
从“typescript”导入*作为ts;
导出类规则扩展了Lint.Rules.AbstractRule{
公共应用(sourceFile:ts.sourceFile):Lint.RuleFailure[]{
返回此.applyWithFunction(sourceFile,walk);
}
}
函数漫游(ctx:Lint.WalkContext){
函数nodeChecker(节点:ts.node):任意{
if(tsutils.isPropertyAccessExpression(node)和&isUseOfNameProbled(node.getText()){
ctx.addFailureAtNode(node,“如果禁止使用.name,缩小后将不起作用”);
}
返回ts.forEachChild(node,nodeChecker);
}
函数isUseOfNameForbidden(文本:字符串):布尔值{
return/^[A-Z]*$/.test(text?[0])&text.endsWith(“.name”);
}
返回ts.forEachChild(ctx.sourceFile,nodeChecker);
}
它只检查您是否引用了一个类(我假设我们所有的类都是PascalCase)

我知道这远非好事(我有史以来的第一条tslint规则)。我想知道是否有合适的方法来检查我引用的是
还是
方法/函数

提前谢谢