TypeScript API Program具有方法getSyntacticDiagnostics来获取语法错误。但是,如果没有Program,而只有SourceFile,我如何获得相同类型的信息?

我通过创建了SourceFile

function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile;

最佳答案

请记住,createSourceFile中的fileName(字符串)参数是虚拟文件名。使用TypeScript库时,此fileName(字符串)在全局范围内使用。

您需要的最重要的是doct对createProgam方法的注释。 程序是代表编译单元的'SourceFile'和'CompilerOptions'的不可变集合。 createProgam方法作为第一个参数需要字符串列表,这些字符串是此程序中使用的文件的虚拟名称。

如果您不理解前面的2个理论段落,我认为示例中的注释将对您有所帮助。

// this is the real code of file. Use fs.readFile, fs.readFileSync or something other to load file real source code.
var code = "class 1X {}";

// I will use this virtual name to reference SourceFile while working with TypeScript API.
var virtualFileName = "aaa.ts";

// initialize SourceFile instance
var sf = ts.createSourceFile(virtualFileName, code, ts.ScriptTarget.ES5);

// Make program as collection of my one virtual file
var prog = ts.createProgram([virtualFileName], {});

// process response as you need.
console.log(prog.getSyntacticDiagnostics(sf));

关于api - 用于创建SourceFile的TypeScript API : how to get syntactic errors information,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45233386/

10-10 19:20