Pegjs: 假打字稿支持

创建于 2018-01-31  ·  8评论  ·  资料来源: pegjs/pegjs

问题类型

  • [x] 功能请求

所以,我实际上很喜欢#514 中的@pjmolina的打字稿插件。 但是,最后,它返回all

我希望你能帮我作弊。 我实际上只是想将签名写入parse/1略有不同,通过在peg语法中添加一些东西,说“使它成为parse/1的返回类型,”如果有输出类型,还可以通过标记输入参数:string 。 然后,您只需要盲目地对最后一个返回值进行类型转换,等等。

对于打字稿(或流式)用户来说,这将对可检查性产生深远的影响,即使它是假的

我需要给你寄多少卡布奇诺才能做到这一点,我会把它们寄到什么地址

最有用的评论

你好! 与此相关,在插件ts-pegjs中,我们为生产规则实现了可选的输出类型。 第 11 期,第16

我们通过returnTypes选项使用成对表"rule-name": "return-type"来做到这一点。

我是抄送你,以防你决定在 DSL 级别上选择性地将 pegjs 的类型信息直接添加到匿名产品中。
它对于 TypeScript 输出、Flow 或任何其他类型化的 JS 变体可能非常有用。

所有8条评论

我真正需要的只是将函数的签名写成

function parse(input: string): MyType { ... }

(管他呢)

你可以从中得到启发。 事先需要标注所有代码块的类型,可以通过注解来完成。 在此准备工作之后,可以在生成器中输入有关类型的信息。

@Mingun - 这很有趣,但也很难理解

您的注释在这里似乎是一个近乎理想的情况 - 这将允许使用类型注释单个解析规则,允许返回多个真实类型

(我理解@Mingun的奇怪时刻也是俄语。)

实际上 TypeScript 不会让语法的开发变得更容易,因为你必须在任何地方注释类型,而且它的类型系统有点坏。 最近我做了一个关于制作 PEG.ts 的小实验,当我给它提供递归类型时,TypeScript 的类型检查器会发出如此可怕的错误消息,我什至无法完成它。

我建议您查看Infernu支持。

@polkovnikov-ph - 是的,这个选择不在我手中,此外,作为 1990 年代的 c++ 模板开发人员,打字稿的错误消息不会吓到我

无论如何,我需要的是能够将解析器添加到打字稿系统,因此,从parse/1中获取打字稿注释对我来说很有价值

现在我正在用粗略的主类型和铸造来做这件事。 我希望我能做得更好

image

你好! 与此相关,在插件ts-pegjs中,我们为生产规则实现了可选的输出类型。 第 11 期,第16

我们通过returnTypes选项使用成对表"rule-name": "return-type"来做到这一点。

我是抄送你,以防你决定在 DSL 级别上选择性地将 pegjs 的类型信息直接添加到匿名产品中。
它对于 TypeScript 输出、Flow 或任何其他类型化的 JS 变体可能非常有用。

人们仍然在 #597 中要求这个

新的维护者创建并放置了一个.d.ts ,所以他显然对打字稿持开放态度

这是同一天的“我们有打字稿”,没有重大变化,只需五行代码加上替换的 es6 模块页脚即可完成。 我不明白为什么没有完成

我已经准备好针对0.11的补丁,但是0.11没有被合并,并且0.12不能用于对抗

此页面是否有帮助?
0 / 5 - 0 等级