Jadi, saya sebenarnya cukup menyukai plugin TypeScript @pjmolina dari #514. Namun, pada akhirnya, ia mengembalikan all
.
Saya berharap bahwa Anda akan membantu saya menipu. Saya sebenarnya hanya ingin menulis tanda tangan ke parse/1
sedikit berbeda, dengan menambahkan beberapa hal ke sintaks peg
yang mengatakan "jadikan ini jenis pengembalian parse/1
," dan juga dengan menandai argumen in :string
jika ada tipe out. Kemudian, Anda hanya perlu mengetik secara membabi buta nilai pengembalian terakhir, et voila.
Untuk pengguna TypeScript (atau flowtype), ini akan berdampak besar pada kemampuan pemeriksaan, meskipun itu fake .
Berapa banyak cappucino yang saya perlukan untuk mengirimi Anda surat untuk mewujudkannya, dan ke alamat mana saya akan mengirimnya?
Yang saya butuhkan hanyalah tanda tangan fungsi ditulis seperti
function parse(input: string): MyType { ... }
(atau terserah)
@Mingun - ini menarik, tetapi juga sangat sulit untuk dipahami
Hal anotasi Anda tampaknya menjadi kasus yang hampir ideal di sini - yang akan memungkinkan anotasi aturan penguraian individu dengan tipe, memungkinkan pengembalian lebih dari satu tipe nyata
(Momen aneh ketika saya mengerti @Mingun juga orang Rusia.)
Sebenarnya TypeScript tidak akan membuat pengembangan tata bahasa lebih mudah, karena Anda harus membubuhi keterangan jenis di mana-mana, dan karena sistem jenisnya agak rusak. Baru-baru ini saya membuat percobaan kecil untuk membuat PEG.ts, dan pemeriksa tipe TypeScript memuntahkan pesan kesalahan yang mengerikan ketika saya memasukkannya dengan tipe rekursif, sehingga saya bahkan tidak bisa menyelesaikannya.
Saya akan merekomendasikan untuk melihat lebih jauh ke dalam dukungan Infernu .
@polkovnikov-ph - ya, pilihan itu tidak ada di tangan saya, dan selain itu, sebagai c++ template dev 1990-an, pesan kesalahan TypeScript tidak membuat saya takut
lagi pula, yang saya butuhkan adalah untuk dapat menambahkan parser ke sistem TypeScript, jadi, ini adalah nilai bagi saya untuk mendapatkan anotasi TypeScript dari parse/1
sekarang saya melakukannya dengan tipe master kotor dan casting. saya berharap saya bisa melakukan yang lebih baik
Hai! Terkait dengan ini, dalam plugin ts-pegjs
kami telah menerapkan pengetikan keluaran opsional untuk aturan produksi. Edisi 11 , PR 16
Kami melakukannya menggunakan tabel pasangan "rule-name": "return-type"
melalui opsi returnTypes
.
Saya cc Anda, untuk berjaga-jaga jika Anda memutuskan untuk secara opsional menambahkan informasi jenis pada pegjs di tingkat DSL ke produksi anonnate secara langsung.
Ini bisa sangat berguna untuk output TypeScript, juga untuk Flow, atau varian JS yang diketik lainnya.
Orang-orang masih menanyakan ini di #597
Pengelola baru membuat dan menyimpan .d.ts
, jadi dia jelas terbuka untuk TypeScript
Ini adalah hari yang sama "kami memiliki TypeScript" tanpa perubahan besar, yang dapat dilakukan dalam lima baris kode ditambah footer modul es6 pengganti. Saya tidak mengerti mengapa itu tidak dilakukan
Saya memiliki tambalan yang siap untuk 0.11
tetapi 0.11
tidak digabung, dan 0.12
tidak tersedia untuk digunakan
Komentar yang paling membantu
Hai! Terkait dengan ini, dalam plugin
ts-pegjs
kami telah menerapkan pengetikan keluaran opsional untuk aturan produksi. Edisi 11 , PR 16Kami melakukannya menggunakan tabel pasangan
"rule-name": "return-type"
melalui opsireturnTypes
.Saya cc Anda, untuk berjaga-jaga jika Anda memutuskan untuk secara opsional menambahkan informasi jenis pada pegjs di tingkat DSL ke produksi anonnate secara langsung.
Ini bisa sangat berguna untuk output TypeScript, juga untuk Flow, atau varian JS yang diketik lainnya.