Как получить экспортированные элементы, используя Typescript Compiler API - PullRequest
1 голос
/ 12 июля 2019

Я работаю над 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, оно не будет работать.

Тогда что мне делать?

Ответы [ 2 ]

0 голосов
/ 16 июля 2019

Вам потребуется получить псевдоним символа из имеющегося у вас локального символа 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);
0 голосов
/ 12 июля 2019

Просто позвони

this.fs.getExportList(urIdentifier,urTypeChecker)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...