【发布时间】:2015-10-18 07:18:30
【问题描述】:
使用 TypeScript 抽象语法树时,如何确定 TypeScript.Expression 对象的结果类型?
我正在使用 TSLint 并试图找到 setTimeout 的调用,这些调用不将 Function 类型的对象作为第一个参数传递。例如,在下面的代码中,我想知道调用了 setTimeout 并且第一个参数是一个函数。
// function that produces a function
var createFunction : () => (() => void) = () => {};
// result of createFunction() should be of type function
setTimeout(createFunction());
AST 是这样排列的:
- setTimeout -> TypeScript.CallExpression
- createFunction() -> TypeScript.Expression
我尝试使用 LanguageService 来确定表达式的类型,但以下 API 都没有满足我的需求:
- languageServices.getQuickInfoAtPosition
- languageServices.getDefinitionAtPosition
- languageServices.getTypeDefinitionAtPosition
有什么想法吗?
【问题讨论】:
标签: typescript tslint