Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Typescript编译器API获取导出的成员_Typescript_Typescript Compiler Api - Fatal编程技术网

如何使用Typescript编译器API获取导出的成员

如何使用Typescript编译器API获取导出的成员,typescript,typescript-compiler-api,Typescript,Typescript Compiler Api,我正在工作 这是Typescript编译器API加载的文件: 将*作为fs从“fs”导入 这是我的代码: 函数getExportList(节点:ts.标识符,检查器:ts.类型检查器){ const symbol=checker.getSymbolLocation(节点) 返回检查器.getExportsOfModule(符号) } 正在尝试获取导出的fs成员 我知道符号不是ts.ModuleSymbol,它不会工作 那我该怎么办呢?简单地说就是了 this.fs.getExportLi

我正在工作

这是Typescript编译器API加载的文件:


将*作为fs从“fs”导入
这是我的代码:


函数getExportList(节点:ts.标识符,检查器:ts.类型检查器){
const symbol=checker.getSymbolLocation(节点)
返回检查器.getExportsOfModule(符号)
}
正在尝试获取导出的
fs
成员

我知道
符号
不是
ts.ModuleSymbol
,它不会工作

那我该怎么办呢?

简单地说就是了

this.fs.getExportList(urIdentifier,urTypeChecker)

您需要从本地
fs
符号中获取别名符号

const localFsSymbol = typeChecker.getSymbolAtLocation(node)!; // todo: handle when undefined
const fsSymbol = typeChecker.getAliasedSymbol(localFsSymbol);
const moduleExports = typeChecker.getExportsOfModule(fsSymbol);

// this prints out ["rename", "renameSync", "truncate", ...etc...]
console.log(moduleExports.map(s => s.name));
如果这不起作用,则确保程序中没有诊断:

const diagnostics = ts.getPreEmitDiagnostics(program);
console.log(diagnostics);

有帮助吗?建议以后用typescript编译器api标记这些,因为您会得到更快的响应。对不起,我之前没有说清楚。
fs
getExportList
不在同一个文件中。这两个文件位于同一个位置,非常感谢。这困扰了我好几个星期:)@David node(传递到getSymbol func中)的可能值是什么?