我正在使用 typescript 库进行一些思考。首先,我使用ts.createSourceFile
并传递存储在内存中的文件。这确实很好,并且我可以轻松地在节点之间移动以将绑定(bind)语法(在html文件中)与ViewModels( typescript )相匹配,以确保访问良好。
我的问题是我现在想对产生的ts.SourceFile对象进行一些基本的类型检查。到目前为止,我只能跟踪TypeChecker
接口(interface)回到Program
类。不幸的是,ts.createProgram
采用文件路径,而我想传递已经拥有的SourceFile
集合。
有没有办法让我使用已经拥有的ts.SourceFile
对象进行类型检查?我真正需要知道的是,如果右侧可以分配给左侧,那么我在这两个位置都有类型节点。
最佳答案
您可以像这样使用ts.createSourceFile()
:
let sourceCode = fs.readFileSync(commander.file);
let sourceFile = ts.createSourceFile(commander.file, sourceCode.toString(), ts.ScriptTarget.ES2015, true);
visitNode(sourceFile);
然后在
visitNode
函数中,您可以访问显示NodeObject
信息的TypeChecker
节点:function visitNode(node: NodeObect) {
recognize(node);
node.getChildren().forEach(c => visitNode(c));
}