JavaScript/JSON接口描述语言

JavaScript/JSON接口描述语言,javascript,metadata,Javascript,Metadata,以此为例,。您可以看到,Javascript方法返回的对象由元语言描述。该页中的以下代码段: interface Node { type: string; loc: SourceLocation | null; } 描述一个名为节点的对象,该对象有两个属性:类型和位置。以及以下各项: interface Program <: Node { type: "Program"; body: [ Statement ]; } 这是一种记录公开特定API的Ja

以此为例,。您可以看到,Javascript方法返回的对象由元语言描述。该页中的以下代码段:

interface Node {
  type: string;
  loc: SourceLocation | null;
}
描述一个名为
节点
的对象,该对象有两个属性:
类型
位置
。以及以下各项:

interface Program <: Node {
  type: "Program";
  body: [ Statement ];
}
这是一种记录公开特定API的Javascript对象的聪明方法!但在这里找不到标准

问题我想了解更多关于这种元语言的信息,但在互联网上找不到资源。但是,为了使这个问题具有可回答性和非一般性,作为初学者,请考虑以下问题:

  • 这个元语言有名字吗
  • 这可能是JavaScript/JSON的IDL吗
  • 这个元语言有官方的规范吗
  • 如果存在规范,我在哪里可以找到它
  • 谢谢


    请注意,此问题与ASTs无关我不在乎他们!我链接的页面恰好是关于ASTs的,但这是因为我找不到另一个使用这种元语言记录JS内容的网页或库。我只是想更多地了解该页面中用于记录其JavaScript对象的元语言以及它们公开的API。

    我也花了相当长的时间寻找该格式的规范或某种描述。一些项目似乎正在使用这种类型的IDL来记录AST,包括Babel、Handlebar和ESTree

    我在EstreeGithub存储库中发现了一个问题,即它是一种自定义语法。我想知道这是不是真的,因为这么多大型项目会决定使用这样一种未记录的语法,这似乎很奇怪

    interface MyObject {
      path: string;
      indices: [int];
      evaluateScore: function;
    }