【问题标题】:How do I use the node-tree-sitter module from typescript?如何使用 typescript 中的 node-tree-sitter 模块?
【发布时间】:2020-11-16 01:40:15
【问题描述】:

通过查看拉取请求和问题,我发现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());

【问题讨论】:

    标签: typescript treesitter


    【解决方案1】:

    tree-sitter 模块没有单独的@types/tree-sitter 模块(如some other modules),而是将tree-sitter.d.ts 类型定义文件与tree-sitter 模块本身捆绑在一起。您可以在node_modules/tree-sitter 目录中找到此文件。当你导入 tree-sitter 时,TypeScript 会自动找到这个文件。因此,您可以在 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());
    

    【讨论】:

      猜你喜欢
      • 2016-12-20
      • 2020-09-04
      • 2020-12-17
      • 1970-01-01
      • 2022-07-06
      • 2019-04-29
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      相关资源
      最近更新 更多