Как использовать модуль node-tree-sitter из машинописного текста?

Глядя на запросы на вытягивание и проблемы, я вижу, что в модуле node-tree-sitter есть определения машинописного текста (возможно, в настоящее время устаревшие); как мне получить доступ к этим определениям из машинописного текста, и что было бы эквивалентом следующего примера кода javascript для дерева узлов в машинописном тексте?

const Parser = require('tree-sitter');
const JavaScript = require('tree-sitter-javascript');

const parser = new Parser();
parser.setLanguage(JavaScript);

const sourceCode = 'let x = 1; console.log(x);';
const tree = parser.parse(sourceCode);

console.log(tree.rootNode.toString());

1 ответ

Решение

В tree-sitter модуль не имеет отдельного @types/tree-sitterмодуль (как и некоторые другие модули), но вместо этого объединяет tree-sitter.d.ts файл определения типа с tree-sitterсам модуль. Вы можете найти этот файл в своемnode_modules/tree-sitterкаталог. TypeScript автоматически находит этот файл при импортеtree-sitter. Таким образом, вы можете переписать пример кода JavaScript в TypeScript следующим образом:

import Parser = require('tree-sitter');
import JavaScript = require('tree-sitter-javascript');

const parser : Parser = new Parser();
parser.setLanguage(JavaScript);

const sourceCode : string = 'let x = 1; console.log(x);';
const tree : Parser.Tree = parser.parse(sourceCode);

console.log(tree.rootNode.toString());
Другие вопросы по тегам