gpt4 book ai didi

typescript - 如何使用 Typescript Compiler API 获取导出的成员

转载 作者:行者123 更新时间:2023-12-04 17:35:01 25 4
gpt4 key购买 nike

我正在研究 https://github.com/GooGee/Code-Builder

这是由 Typescript Compiler API 加载的文件:


import * as fs from 'fs'

这是我的代码:


function getExportList(node: ts.Identifier, checker: ts.TypeChecker) {
const symbol = checker.getSymbolAtLocation(node)
return checker.getExportsOfModule(symbol)
}

正在尝试获取 fs 的导出成员。

我知道 symbol 不是 ts.ModuleSymbol,它不会工作。

那我该怎么办呢?

最佳答案

您需要从本地的 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 - 如何使用 Typescript Compiler API 获取导出的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56999775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com