2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

`invariant` もしくは `tiny-invariant` というNPMパッケージ

Last updated at Posted at 2025-12-01

invariant もしくは tiny-invariant パッケージを知っていますか?

これらは1週間に2,000万回ダウンロードされる、超人気パッケージです。

invariant とは

直訳すると「不変なもの」という意味ですが、わかりづらいので tiny-invariant に含まれるコードを見てみましょう。

これが tiny-invariant のほぼ全てです。(正確には tiny-invariant.ts が本体)
また、 invariant パッケージもほぼ同じです。

これを読んで何をしているかわからない人はほとんどいないと思いますが、 invariant 関数の第一引数がtruthyであれば何もせず、falsyであればエラーになります。

assert関数とほぼ同じです。

assert との差

assert は主にデバッグ環境のみで利用されると思います。
一方で、 invariant は環境によらず契約を記述するための関数として利用されているようです。

もちろん関数の使い方は自由なので違う用途、思想で利用されているかもしれません。

おわり

invariant もしくは tiny-invariant というNPMパッケージの紹介でした。

コメントも含めて50行ほど (tiny-invariant.ts) のパッケージが1週間に2,000万回ダウンロードというのは少し不思議ですね。
オープンソースかつ、枯れている(という表現が正しいかはさておき)のでほぼ同じ実装を手元に置けば良い気もします。

OSSの世界は深いですね。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?