Как использовать модуль 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());