<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bun | 锤子前端</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 与 &lt;mark class=&quot;highlight&quot;&gt;Bun&lt;/mark&gt; 上运行。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><item><title>《2026年JavaScript生态全景指南》</title><link>https://channel.meo-ai.com/posts/592</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/592</guid><pubDate>Wed, 08 Apr 2026 09:23:59 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《2026年JavaScript生态全景指南》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23JavaScript&quot; title=&quot;#JavaScript&quot;&gt;#JavaScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ECMAScript2025&quot; title=&quot;#ECMAScript2025&quot;&gt;#ECMAScript2025&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ECMAScript2026&quot; title=&quot;#ECMAScript2026&quot;&gt;#ECMAScript2026&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Vue&quot; title=&quot;#Vue&quot;&gt;#Vue&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Svelte&quot; title=&quot;#Svelte&quot;&gt;#Svelte&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=%23TypeScript&quot; title=&quot;#TypeScript&quot;&gt;#TypeScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Vite&quot; title=&quot;#Vite&quot;&gt;#Vite&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Bun&quot; title=&quot;#Bun&quot;&gt;#Bun&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=%23TemporalAPI&quot; title=&quot;#TemporalAPI&quot;&gt;#TemporalAPI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23IteratorHelpers&quot; title=&quot;#IteratorHelpers&quot;&gt;#IteratorHelpers&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ImportAttributes&quot; title=&quot;#ImportAttributes&quot;&gt;#ImportAttributes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;本文全面梳理了2026年JavaScript生态系统的最新发展，涵盖ECMAScript 2025（迭代器助手、Set方法、Promise.try等）和2026预期特性（Temporal API、资源管理），React/Vue/Svelte框架动态，Node.js原生TypeScript支持、Bun和Deno运行时竞争，Vite 8与Turbopack构建工具演进，TypeScript v6及AI编程趋势。文章强调掌握基础原理比追逐工具更重要，特别是在AI辅助编程时代，架构能力和代码品味尤为关键。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;- **ECMAScript 2025超实用新玩具**：迭代器终于能链式调用`.map()&lt;code&gt;和&lt;/code&gt;.filter()`啦，而且是惰性求值不耗内存；Set之间可以玩集合运算，轻松找出技能交集和差集；`Promise.try()`让同步异步错误一网打尽；还有`RegExp.escape()`终于解决了用户搜索时特殊字符炸正则的问题～&lt;br /&gt;&lt;br /&gt;- **2026年最期待的Temporal API**：Date对象终于被拯救了！处理时区和日期计算不会再莫名其妙多出几天，浏览器原生支持即将到来，告别 moment.js 大礼包的时代要来啦～&lt;br /&gt;&lt;br /&gt;- **框架圈的大新闻**：React 19的Server Components和Compiler还在消化中，Vue 3.6祭出Vapor Mode性能大招，Svelte 5的Runes API让响应式更细粒度； Next.js 16默认切到Turbopack，Astro被Cloudflare抱走，Remix正在酝酿去React化的大胆实验～&lt;br /&gt;&lt;br /&gt;- **运行时三国杀**：Node.js 22+能直接跑.ts文件啦（虽然只是剥离类型），Bun被Anthropic(Claude家)收编后1.3版本速速飞起，Deno 2稳如老狗主打安全牌，三足鼎立格局越来越有意思～&lt;br /&gt;&lt;br /&gt;- **TypeScript登顶GitHub第一**：v6严格模式默认开启，v7要用Go重写编译器提速10倍；92%的开发者都在用AI写代码，但文章提醒我们——基础原理和架构品味才是AI时代真正的护城河呀！&lt;br /&gt;&lt;br /&gt;文章URL：&lt;a href=&quot;https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/&quot;&gt;https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;We’ve done posts like this for CSS, but JavaScript deserves the same dangnabit! Especially as JavaScript does a better job of versioning itself anyway. We’ll cover new stuff in the language itself, but being a JavaScript practitioner involves more than the…&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Frontend Masters&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;What To Know in JavaScript (2026 Edition)&quot; src=&quot;/static/https://cdn4.telesco.pe/file/WN6cj5f8Vx_P8Z3OsdEBn_3LZO0iBYAUinHX4LPFIkO1eED-PgzHLHjDve26vNQbZCTVfASa_QYCvfhH29se2CitDfW0fUoiUsxwVGva7NrX-tWh6abXz2IiDE6rrbpVx2HE8u57rtazO9Jrpo3anbOo7wNUE1a46k4tfMUBNrFZAML-lM7_QSluOezuiqi20i4UduzPBjmqvIn3l0S2vWxVp7vUsC0hs_B32vvPG5ijh-tOVkeWVaV3uAu7vLaPailhW8Wa2mZgxNUUT2MnPbX3aj2Gxl_KY4-nmrERp7aQR-btLK-G1Ktr2NFFqSPK75M0PD48sdx-cWcLaMKqRg.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;What To Know in JavaScript (2026 Edition)&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;We’ve done posts like this for CSS, but JavaScript deserves the same dangnabit! Especially as JavaScript does a better job of versioning itself anyway. We’ll cover new stuff in the language itself, but being a JavaScript practitioner involves more than the…&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>