だから、私は実際には#514の@pjmolinaのtypescriptプラグインにかなり興味があります。 ただし、最後にall
を返します。
私はあなたが私をだますのを手伝ってくれることを望んでいました。 私は実際には、 peg
構文に「これをparse/1
の戻り型にする」という何かを追加することによって、わずかに異なる方法でparse/1
に署名を書きたいと思っています。また、out型がある場合は、in引数に:string
をマークします。 次に、最後の戻り値などを盲目的に型キャストする必要があります。
typescript(またはflowtype)ユーザーにとって、これは偽物であっても、チェック可能性に大きな影響を及ぼします。
これを実現するために、いくつのカプシノを郵送する必要がありますか。また、どのアドレスに送信しますか。
実際に必要なのは、関数のシグネチャを次のように記述することだけです。
function parse(input: string): MyType { ... }
(または何でも)
@ Mingun-これは興味深いですが、理解するのも非常に困難です
ここでは、注釈はほぼ理想的なケースのようです。これにより、型を使用した個々の解析ルールの注釈が可能になり、複数の実際の型を返すことができます。
( @Mingunを理解した奇妙な瞬間もロシア語です。)
実際、TypeScriptは文法の開発を容易にしません。なぜなら、どこでも型に注釈を付ける必要があり、その型システムがちょっと壊れているからです。 最近、私はPEG.tsの作成について小さな実験を行いました。再帰型を指定すると、TypeScriptの型チェッカーがそのような恐ろしいエラーメッセージを吐き出し、それを完了できませんでした。
Infernuのサポートを調べることをお勧めします。
@ polkovnikov-ph-ええ、その選択は私の手にはありません。さらに、1990年代のc ++テンプレート開発者として、typescriptのエラーメッセージは私を怖がらせません
とにかく、私が必要としているのは、タイプスクリプトシステムにパーサーを追加できるようにすることです。したがって、 parse/1
からタイプスクリプト注釈を取得することは私にとって価値があります。
今、私はグロスマスタータイプとキャスティングでそれをやっています。 もっと上手くできたらいいのに
人々はまだ#597でこれを求めています
新しいメンテナは.d.ts
を作成して収容したので、彼は明らかにタイプスクリプトを受け入れています
これは同じ日の「typescriptがあります」であり、大きな変更はありません。これは、5行のコードと交換用のes6モジュールフッターで実行できます。 なぜそれが行われていないのか分かりません
0.11
に対してパッチを用意していますが、 0.11
がマージされておらず、 0.12
を使用できません。
最も参考になるコメント
こんにちは! これに関連して、プラグイン
ts-pegjs
で、プロダクションルールのオプションの出力タイピングを実装しました。 第11号、 PR 16returnTypes
オプションを介してペア"rule-name": "return-type"
のテーブルを使用してそれを行いました。DSLレベルでpegjsのタイプ情報をオプションで追加して、プロダクションを直接匿名化することにした場合に備えて、私はあなたです。
TypeScript出力、Flow、またはその他の型付きJSバリアントに非常に役立つ可能性があります。