Проанализируйте файл JavaScript с помощью Typescript Compiler - PullRequest
1 голос
/ 12 мая 2019

См .: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API, Я хочу получить тип узла в AST.

Это успешно для angular проекта, потому что он написан с использованием машинописи и tsconfig.json существует.

Когда я пытаюсь проанализировать react app, который написан с использованием JavaScript

const program = ts.createProgram({
    rootNames: [fileName],
    options: {
        strict: true,
        target: ts.ScriptTarget.ES2015,
        allowJs: true,
        checkJs: true
    }
})
const typeChecker = program.getTypeChecker();
... ...

Я получаю: typechecker.getTypeAtLocation(node).getSymbol() - это undefined.

Я предполагаю, что options из ts.createProgram неверно.

1 Ответ

0 голосов
/ 16 мая 2019

опция: moduleResolution: ts.ModuleResolutionKind.NodeJs является ключевым.

const program = ts.createProgram({
    rootNames: [file1],
    options: {
        strict: true,
        target: ts.ScriptTarget.ES2015,
        allowJs: true,
        checkJs: true,
        moduleResolution: ts.ModuleResolutionKind.NodeJs
    }
})

Вышеприведенное работает для React JS.

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