11

我正在使用 typescript 库进行一些反思。首先,我使用ts.createSourceFile和传递存储在内存中的文件。这非常有效,我可以轻松地通过节点来匹配绑定语法(在 html 文件中)与 ViewModels(打字稿),以确保访问良好。

我的问题是我现在想对我拥有的 ts.SourceFile 对象进行一些基本的类型检查。到目前为止,我只能将TypeChecker接口跟踪回Program类。不幸的是,ts.createProgram需要文件的路径,而我想传递SourceFile我已经拥有的集合。

有没有办法使用ts.SourceFile我已经拥有的对象进行类型检查?我真正需要知道的是右侧是否可分配给左侧,我在左侧都有类型节点。

4

1 回答 1

-3

你可以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));
}
于 2016-11-01T13:12:49.530 回答