Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何确定tslint规则中的节点是函数/方法的引用?_Typescript - Fatal编程技术网

Typescript 如何确定tslint规则中的节点是函数/方法的引用?

Typescript 如何确定tslint规则中的节点是函数/方法的引用?,typescript,Typescript,鉴于这一规则: 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.RuleFai

鉴于这一规则:

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 {
        /**
         * examples of nodes I need to find:
         *  SomeClassFromElseWhere.someMethod.name;
         *  this.someMethod.name;
         *
         * for all this cases I need to know if "someMethod" is a method
         */

        return ts.forEachChild(node, nodeChecker);
    }

    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):任意{
/**
*我需要查找的节点示例:
*someclassfromwhere.someMethod.name;
*this.someMethod.name;
*
*对于所有这些情况,我需要知道“someMethod”是否是一种方法
*/
返回ts.forEachChild(node,nodeChecker);
}
返回ts.forEachChild(ctx.sourceFile,nodeChecker);
}
我需要确定我的节点包含对方法/函数的引用。如果该方法是在同一个文件中定义的,那没关系,因为我可以跟踪所有的方法定义,并且很容易检查。但是如果我从其他地方访问一个方法(来自导入),我不知道如何检查它

谢谢大家!