如何从打字脚本AST中推断类型? [英] How do you get inferred type from a typescript AST?
本文介绍了如何从打字脚本AST中推断类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用内置解析器从源代码生成AST:
const ts = require('typescript')
//...
const ast = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, true)
有没有办法从AST中获得推断出的变量类型?例如,在下面的代码中,bar
是IBar
类型。编译器知道该类型-bar.foo()
不编译-我如何以编程方式获取该类型?
interface IBar { bar() }
const foo : IBar = //...
export const bar = foo
推荐答案
编译器知道该类型-bar.foo()不编译-如何以编程方式获取该类型?
AST
不是TypeChecking的完整故事。您需要TypeChecker
。
最简单的解决方案是创建一个程序(一些文档https://basarat.gitbooks.io/typescript/content/docs/compiler/program.html),然后使用program.getTypeChecker
(更多文档https://basarat.gitbooks.io/typescript/content/docs/compiler/checker.html)🌹
这篇关于如何从打字脚本AST中推断类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文