所以,我实际上很喜欢#514 中的@pjmolina的打字稿插件。 但是,最后,它返回all
。
我希望你能帮我作弊。 我实际上只是想将签名写入parse/1
略有不同,通过在peg
语法中添加一些东西,说“使它成为parse/1
的返回类型,”如果有输出类型,还可以通过标记输入参数:string
。 然后,您只需要盲目地对最后一个返回值进行类型转换,等等。
对于打字稿(或流式)用户来说,这将对可检查性产生深远的影响,即使它是假的。
我需要给你寄多少卡布奇诺才能做到这一点,我会把它们寄到什么地址
我真正需要的只是将函数的签名写成
function parse(input: string): MyType { ... }
(管他呢)
@Mingun - 这很有趣,但也很难理解
您的注释在这里似乎是一个近乎理想的情况 - 这将允许使用类型注释单个解析规则,允许返回多个真实类型
(我理解@Mingun的奇怪时刻也是俄语。)
实际上 TypeScript 不会让语法的开发变得更容易,因为你必须在任何地方注释类型,而且它的类型系统有点坏。 最近我做了一个关于制作 PEG.ts 的小实验,当我给它提供递归类型时,TypeScript 的类型检查器会发出如此可怕的错误消息,我什至无法完成它。
我建议您查看Infernu支持。
@polkovnikov-ph - 是的,这个选择不在我手中,此外,作为 1990 年代的 c++ 模板开发人员,打字稿的错误消息不会吓到我
无论如何,我需要的是能够将解析器添加到打字稿系统,因此,从parse/1
中获取打字稿注释对我来说很有价值
现在我正在用粗略的主类型和铸造来做这件事。 我希望我能做得更好
人们仍然在 #597 中要求这个
新的维护者创建并放置了一个.d.ts
,所以他显然对打字稿持开放态度
这是同一天的“我们有打字稿”,没有重大变化,只需五行代码加上替换的 es6 模块页脚即可完成。 我不明白为什么没有完成
我已经准备好针对0.11
的补丁,但是0.11
没有被合并,并且0.12
不能用于对抗
最有用的评论
你好! 与此相关,在插件
ts-pegjs
中,我们为生产规则实现了可选的输出类型。 第 11 期,第16期我们通过
returnTypes
选项使用成对表"rule-name": "return-type"
来做到这一点。我是抄送你,以防你决定在 DSL 级别上选择性地将 pegjs 的类型信息直接添加到匿名产品中。
它对于 TypeScript 输出、Flow 或任何其他类型化的 JS 变体可能非常有用。