Typescript编译器,如何按名称获取导出的符号?

Jos*_*Ch. 2 typescript-compiler-api

按名称获取导出符号的最佳方法是什么?

下面是功能代码。然而,它似乎有点脆弱,因为我无法在不忽略类型系统的情况下从“sourceFile”获取“符号”。

  const sourceFile = tsprogram.getSourceFile('foo_file.ts');
  const fileSymbol = (sourceFile as any).symbol as ts.Symbol; // anything better her? 
  const  export = fileSymbol.exports.get('FooComponent');
Run Code Online (Sandbox Code Playgroud)

Dav*_*ret 5

使用类型检查器:

const fileSymbol = tsprogram.getTypeChecker().getSymbolAtLocation(sourceFile);
const fooComponentSymbol = fileSymbol?.exports.get('FooComponent');
Run Code Online (Sandbox Code Playgroud)

fileSymbol请注意,当没有文件导出时,该值将是未定义的。