我正在使用typescript库进行一些反思。首先,我使用ts.createSourceFile
并传递存储在内存中的文件。这非常有效,我可以轻松地在节点中移动以匹配绑定语法(在html文件中)与ViewModels(typescript),以确保访问良好。
我的问题是我想现在使用生成的ts.SourceFile对象进行一些基本的类型检查。到目前为止,我只能跟踪TypeChecker
接口返回Program
类。不幸的是,ts.createProgram
需要获取文件的路径,而我想传递我已经拥有的SourceFile
集合。
我有办法使用我已有的ts.SourceFile
对象进行类型检查吗?我真正需要知道的是,如果右侧可以分配给左侧,那么我有两个类型节点。
答案 0 :(得分:-1)
你可以这样使用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));
}