2

通过查看拉取请求和问题,我看到node-tree-sitter模块中有打字稿定义(可能当前已过时) ;如何从 typescript 访问这些定义,以及 typescript 中以下 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());
4

1 回答 1

2

tree-sitter模块没有单独的@types/tree-sitter模块(与其他一些模块一样),而是将tree-sitter.d.ts类型定义文件与tree-sitter模块本身捆绑在一起。您可以在您的node_modules/tree-sitter目录中找到此文件。TypeScript 会在你导入时自动找到这个文件tree-sitter。因此,您可以在 TypeScript 中重写示例 JavaScript 代码,如下所示:

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());
于 2020-07-29T20:54:53.167 回答