尝试创建一个简单的转换器,使用createSourceFile
函数手动创建SourceFile对象可以很好地工作,但是TypeChecker
根本找不到类型或符号。
使用以下代码创建程序时,仅发现node_modules
中的声明文件,我猜测TypeChecker
找不到类型/符号,因为它不知道我的源文件,我正在使用打字稿版本3.5.2
const fileNames = process.argv.slice(2);
console.log(fileNames);
const program = createProgram(fileNames, {
target: ScriptTarget.ES5,
module: ModuleKind.CommonJS
});
const checker = program.getTypeChecker();
for (const sourceFile of program.getSourceFiles()) {
console.log(sourceFile.fileName);
}
// [ 'path/to/my/file.ts' ]
// ..../node_modules/typescript/lib/lib.d.ts
// ..../node_modules/typescript/lib/lib.es5.d.ts
// ..../node_modules/typescript/lib/lib.es2015.d.ts
// ..../node_modules/typescript/lib/lib.es2016.d.ts
// ..../node_modules/typescript/lib/lib.es2017.d.ts
// ..../node_modules/typescript/lib/lib.es2018.d.ts
// ..../node_modules/typescript/lib/lib.dom.d.ts
// .... more declaration files only, none of my source files are found
我创建程序错误吗,我必须自己扫描文件吗?感谢您的任何帮助(链接到更新的文档或相关问题/问题等)