Lodashとの互換性
tsx
// es-toolkit/compatはlodashと100%同じ動作を提供することを目指しています
import { chunk } from 'es-toolkit/compat';
// es-toolkitは元々chunkのサイズとして0をサポートしていませんでした
chunk([1, 2, 3, 4], 0);
// es-toolkit/compatはlodashと同じ[]を返します
lodash
との最大の互換性を確保するために、2つのライブラリ間のギャップを埋める互換レイヤーであるes-toolkit/compat
を使用してください。
es-toolkit
はスムーズなマイグレーションを保証するために、2つのライブラリ間の動作の違いがないes-toolkit/compat
ライブラリを開発しています。lodash
と同じAPIと機能を提供し、スムーズにマイグレーションできるようサポートする予定です。
es-toolkit/compat
は実際のlodash
テストコードを使用してテストされます。
es-toolkit/compat
は、元のes-toolkit
と比較して若干のパフォーマンス低下とバンドルサイズの増加があることに注意してください。このモジュールはスムーズな移行を支援するために設計されており、移行が完了したら最適なパフォーマンスを得るために元のes-toolkit
に置き換えるべきです。
デザイン原則
INFO
デザイン原則は変更される可能性があります。
es-toolkit/compat
は以下のような機能についてlodash
と100%同じ機能を提供することを目指しています。
lodash
のテストケースで作成された機能@types/lodash
または@types/lodash-es
の型から推論できる機能
以下のような機能はes-toolkit/compat
ではサポートしていません。
- 空文字列を0またはfalseに変換するような暗黙的な型変換
- sortedUniqのような特定のタイプの配列に特化した実装を持つ関数
Array.prototype
のようなJavaScriptの組み込みオブジェクトのプロトタイプが変更された場合に対応するコード- JavaScript Realmに対応するコード
_(arr).map(...).filter(...)
のような"Seq"メソッドを通じたメソッドチェーンのサポート
実装ステータス
INFO
以下の絵文字は各機能の実装ステータスを示しています:
- ✅: 完了(関数は完全に実装され、lodashのテストコードで全てのテストに合格しています。)
- 📝: レビュー中(関数は実装されていますが、まだlodashのテストコードでテストされていません。)
- ❌: 未実装(関数はまだ実装されていません。)
"レビュー中"と表示されていても、完全に同じか確認しているだけですでに同じ機能を提供しているかもしれません。
"Array" メソッド
"Collection" メソッド
"Date" メソッド
関数名 | 実装状況 |
---|---|
now | ❌ |
"Function" メソッド
関数名 | 実装状況 |
---|---|
after | 📝 |
ary | ✅ |
before | ✅ |
bind | ✅ |
bindKey | ✅ |
curry | ✅ |
curryRight | ✅ |
debounce | ✅ |
defer | ✅ |
delay | 📝 |
flip | ✅ |
memoize | 📝 |
negate | 📝 |
once | 📝 |
overArgs | ❌ |
partial | 📝 |
partialRight | 📝 |
rearg | ✅ |
rest | ✅ |
spread | ✅ |
throttle | ✅ |
unary | 📝 |
wrap | ❌ |
"Lang" メソッド
"Math" メソッド
関数名 | 実装状況 |
---|---|
add | ❌ |
ceil | ✅ |
divide | ❌ |
floor | ✅ |
max | ✅ |
maxBy | 📝 |
mean | 📝 |
meanBy | 📝 |
min | ✅ |
minBy | 📝 |
multiply | ❌ |
round | ✅ |
subtract | ❌ |
sum | ✅ |
sumBy | ✅ |
"Number" メソッド
関数名 | 実装状況 |
---|---|
clamp | ✅ |
inRange | ✅ |
random | ✅ |