【问题标题】:Typescript compiler, how to get an exported symbol by name?Typescript编译器,如何按名称获取导出的符号?
【发布时间】:2019-11-16 06:23:43
【问题描述】:

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

下面是功能代码。但是,它似乎有点脆弱,因为我无法在不忽略类型系统的情况下从“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');

【问题讨论】:

    标签: typescript-compiler-api


    【解决方案1】:

    使用类型检查器:

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

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

    【讨论】:

    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2015-12-05
    • 2013-01-25
    • 2013-08-02
    • 2018-06-19
    • 1970-01-01
    相关资源
    最近更新 更多