[[Zod]]の記事を書くために必要な情報収集メモ。
## 公式の覚書
公式READMEから重要そうな説明をピックアップ。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">GitHub - colinhacks/zod: TypeScript-first schema validation with static type inference</p>
</div>
<div class="link-card-description">
TypeScript-first schema validation with static type inference - GitHub - colinhacks/zod: TypeScript-...
</div>
</div>
<img src="https://opengraph.githubassets.com/277029907f732d6b7224433ff3baf9f99b9da2044eacf572a5422d5c128a02cc/colinhacks/zod" class="link-card-image" />
</div>
<a href="https://github.com/colinhacks/zod"></a>
</div>
> The goal is to eliminate duplicative type declarations.
型宣言の重複を極力排除することが目的。
> With Zod, you declare a validator once and Zod will automatically infer the static TypeScript type.
[[Zod]]を使えば、validatorを定義するだけで型定義を自動で推論してくれる。
> - Zero dependencies
> - Works in Node.js and all modern browsers
> - Tiny: 8kb minified + zipped
> - Immutable: methods (e.g. .optional()) return a new instance
> - Concise, chainable interface
> - Functional approach: parse, don't validate
> - Works with plain JavaScript too! You don't need to use TypeScript.
- 依存関係なし
- [[Node.js]]やすべての[[モダンブラウザ]]で動く
- 8kbと軽量 ([[Minification]] / 圧縮 後)
- [[イミュータブル]]
- 簡潔で[[メソッドチェーン]]可能なインターフェース
- ???
- [[JavaScript]]でも使える
> [!note]
> プラグインは[[zod-openapi]]が気になるけどなんか違う...? [[OpenAPI Specification]]から[[Zod]]のスキーマを作る方が欲しい。