如何从打字脚本AST中推断类型? [英] How do you get inferred type from a typescript AST?

查看:7
本文介绍了如何从打字脚本AST中推断类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用内置解析器从源代码生成AST:

const ts = require('typescript')
//...
const ast = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, true)

有没有办法从AST中获得推断出的变量类型?例如,在下面的代码中,barIBar类型。编译器知道该类型-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆