Попытка создания простого преобразователя, создание объекта SourceFile вручную с помощью функции createSourceFile
работает нормально, но 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
Неправильно ли я создаю программу, нужно ли самому искать файлы? приветствуется любая помощь (ссылки на обновленные документы или связанные вопросы / проблемы и т. д.)