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

时间:2019-11-15 22:21:25

标签: typescript-compiler-api

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

下面是功能代码。但是,它确实有点脆弱,因为在不忽略类型系统的情况下,我无法从“ sourceFile”中获取“ symbol”。

  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');

1 个答案:

答案 0 :(得分:2)

使用类型检查器:

const fileSymbol = tsprogram.getTypeChecker().getSymbolAtLocation(sourceFile);
const fooComponentSymbol = fileSymbol?.exports.get('FooComponent');

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