<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>ParserCombinator | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《Optique：TypeScript 类型安全的 CLI 解析器》</title><link>https://channel.meo-ai.com/posts/608</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/608</guid><pubDate>Fri, 24 Apr 2026 08:53:06 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Optique：TypeScript 类型安全的 CLI 解析器》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23CLI&quot; title=&quot;#CLI&quot;&gt;#CLI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TypeScript&quot; title=&quot;#TypeScript&quot;&gt;#TypeScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ShellCompletion&quot; title=&quot;#ShellCompletion&quot;&gt;#ShellCompletion&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ParserCombinator&quot; title=&quot;#ParserCombinator&quot;&gt;#ParserCombinator&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NodeJS&quot; title=&quot;#NodeJS&quot;&gt;#NodeJS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Deno&quot; title=&quot;#Deno&quot;&gt;#Deno&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Bun&quot; title=&quot;#Bun&quot;&gt;#Bun&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;Optique 是一款面向 TypeScript 的类型安全 CLI 解析器库，灵感源自 Haskell 的 optparse-applicative 与 TypeScript 的 Zod。它采用函数式组合子（combinator）架构，通过组合小型类型安全解析器构建复杂 CLI，TypeScript 自动推断解析结果类型。支持标志、选项、子命令、选项间依赖、环境变量绑定、交互式提示、配置文件集成、Shell 补全及 man 手册生成，并可在 Deno、Node.js 与 Bun 上运行。1.0.0 版本新增 &lt;code&gt;@optique/env&lt;/code&gt; 环境变量包与 &lt;code&gt;@optique/prompt&lt;/code&gt; 交互式提示包，同时修复了 Shell 补全、帮助输出与值解析中的数百项问题 。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;- 类型安全组合子架构：用函数式组合子拼装小型解析器，TypeScript 自动推断解析结果类型，编译时保证安全，解析器结构本身即运行时校验规则 。&lt;br /&gt;- 零重复定义的智能 Shell 补全：支持 Bash、zsh、fish、PowerShell、Nushell 五大 Shell，补全逻辑直接复用解析器结构，无需额外维护补全定义，选项、参数与 &lt;code&gt;choice()&lt;/code&gt; 值自动同步 。&lt;br /&gt;- 灵活的集成扩展：提供 &lt;code&gt;@optique/env&lt;/code&gt; 环境变量回退、&lt;code&gt;@optique/config&lt;/code&gt; 配置文件级联、&lt;code&gt;@optique/prompt&lt;/code&gt; 交互式提示、&lt;code&gt;@optique/zod&lt;/code&gt; 与 &lt;code&gt;@optique/valibot&lt;/code&gt; 桥接，以及 &lt;code&gt;@optique/temporal&lt;/code&gt; 日期时间解析等生态包 。&lt;br /&gt;- 1.0 正式版成熟稳定：2026 年 4 月发布的 1.0.0 完成 API 清理，新增 &lt;code&gt;fail&amp;lt;T&amp;gt;()&lt;/code&gt; 解析器、&lt;code&gt;validateValue()&lt;/code&gt; 校验、&lt;code&gt;normalize()&lt;/code&gt; 规范化与细粒度 &lt;code&gt;hidden&lt;/code&gt; 控制，并修复了数百项补全、帮助与解析问题 。&lt;br /&gt;&lt;br /&gt;文章URL：&lt;a href=&quot;https://optique.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://optique.dev/&quot;&gt;https://optique.dev/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://optique.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Model your command-line grammar with composable, type-safe parsers. Mutually exclusive modes, dependent options, inferred result types, help, completion, and man pages all come from the same parser definition.&quot;&gt;
  &lt;i class=&quot;link_preview_right_image&quot; style=&quot;background-image:url(&apos;https://cdn4.telesco.pe/file/nTs2ofaRc0sj_ctJuhPbLsZO9RktV-id4O68aa6f-59ns3DYHuZdKM5lxtgm4vGwN40HFtzE3bkio-fRlZ4UVZN-YfCaPGTbeby6rVG46CeRRUrbciRSdD-eHV0YJLrkw2RCXTdmDtv-4aFreO25CMp8fZ8BT2oA-aN7e30Y8y-vN4QbLm2gwdUV0gwMXEjha26fhe9zGpaxKPC8cMrFGoTDvyYta2LY1vhk61h5rVLWaS6QNlhFzquFtVFMOFeuIpgSuSmqQIw7K5swAr6s42qCKPTuTgbpRoOHdMZUq3YjSEGpXw1l6E1MQsDyMrB_p4z_60kT0eJN2h1rYUoceA.jpg&apos;)&quot;&gt;&lt;/i&gt;
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;optique.dev&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Optique: type-safe combinatorial CLI parser for TypeScript | Optique&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Model your command-line grammar with composable, type-safe parsers. Mutually exclusive modes, dependent options, inferred result types, help, completion, and man pages all come from the same parser definition.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>