mirror of
https://github.com/toss/es-toolkit.git
synced 2024-11-28 20:26:33 +03:00
caedf69aed
* feat(predicate, compat, isLength): impl isLength Signed-off-by: sunrabbit123 <qudwls185@naver.com> * docs: change compatibility mark Signed-off-by: sunrabbit123 <qudwls185@naver.com> * test(isLength, compat): add test case link Signed-off-by: sunrabbit123 <qudwls185@naver.com> * docs(predicate, isLength): add route path on vitepress Signed-off-by: sunrabbit123 <qudwls185@naver.com> * Update docs/ko/reference/predicate/isLength.md --------- Signed-off-by: sunrabbit123 <qudwls185@naver.com> Co-authored-by: Sojin Park <raon0211@gmail.com> Co-authored-by: Sojin Park <raon0211@toss.im>
28 KiB
28 KiB
Lodash와의 호환성
// es-toolkit/compat은 lodash와 100% 동일한 동작을 제공하도록 목표하고 있어요
import { chunk } from 'es-toolkit/compat';
// es-toolkit은 원래 chunk의 size로 0을 지원하지 않았어요
chunk([1, 2, 3, 4], 0);
// es-toolkit/compat은 lodash와 같은 []을 반환해요
lodash
와 최대 호환성을 위해서는 es-toolkit/compat
라이브러리를 사용하세요.
es-toolkit
은 매끄러운 마이그레이션을 보장하기 위해, 두 라이브러리 사이의 동작 차이가 없는 es-toolkit/compat
라이브러리를 개발하고 있어요. lodash
와 동일한 API와 기능을 제공하여, 수월하게 마이그레이션을 할 수 있도록 도와줄 예정이에요.
es-toolkit/compat
은 실제 lodash
테스트 코드를 이용해서 테스트돼요.
es-toolkit/compat
는 원래 es-toolkit
에 비해 런타임 퍼포먼스나 번들 크기가 최적은 아닐 수 있어요. 마이그레이션 중에 사용하는 도구로 생각해 주시고, 새로운 기능은 es-toolkit
로 개발해주세요.
설계 원칙
::: info
es-toolkit/compat
설계 원칙의 방향성은 변경될 수 있어요.
:::
es-toolkit/compat
은 다음과 같은 기능들에 대해서 lodash
와 100% 동일한 기능을 제공하는 것을 목표로 해요.
lodash
의 테스트 케이스로 작성된 기능@types/lodash
또는@types/lodash-es
의 타입에서 추론할 수 있는 기능
아래와 같은 기능은 es-toolkit/compat
에서 지원하지 않아요.
- 암시적 타입 변환: 빈 문자열을 0 또는 false로 변환하는 것과 같은 동작
- 어떤 경우에 특화된 구현: sortedUniq와 같이 정렬된 배열만 받는 함수
- JavaScript 내장 객체의 프로토타입이 바뀐 경우에 대응하는 코드
- 메서드 체이닝:
_(arr).map(...).filter(...)
와 같은 메서드 체이닝
구현 상태
::: info 아래 이모지로 현재 구현 상태를 나타내고 있어요.
- ✅: 완료 (구현됐고, lodash 테스트 코드를 모두 통과해요.)
- 📝: 리뷰 중 (구현됐지만, lodash 테스트 코드로 테스트되지는 않았어요.)
- ❌: 아직 구현되지 않음
"리뷰 중"으로 표시되었더라고 하더라도, 이미 lodash와 100% 동일한 기능을 제공하고 있을 수도 있어요. :::
"Array" 메서드
함수 이름 | 구현 상태 |
---|---|
chunk | ✅ |
compact | ✅ |
concat | ✅ |
difference | ✅ |
differenceBy | 📝 |
differenceWith | 📝 |
drop | ✅ |
dropRight | ✅ |
dropRightWhile | 📝 |
dropWhile | 📝 |
fill | 📝 |
findIndex | ❌ |
findLastIndex | ❌ |
flatten | 📝 |
flattenDeep | 📝 |
flattenDepth | 📝 |
fromPairs | ❌ |
head | 📝 |
indexOf | ❌ |
initial | 📝 |
intersection | 📝 |
intersectionBy | 📝 |
intersectionWith | 📝 |
join | ❌ |
last | 📝 |
lastIndexOf | ❌ |
nth | ❌ |
pull | ❌ |
pullAll | ❌ |
pullAllBy | ❌ |
pullAllWith | ❌ |
pullAt | ❌ |
remove | ❌ |
reverse | ❌ |
slice | ❌ |
sortedIndex | 지원하지 않음 |
sortedIndexBy | 지원하지 않음 |
sortedIndexOf | 지원하지 않음 |
sortedLastIndex | 지원하지 않음 |
sortedLastIndexBy | 지원하지 않음 |
sortedLastIndexOf | 지원하지 않음 |
sortedUniq | 지원하지 않음 |
sortedUniqBy | 지원하지 않음 |
tail | 📝 |
take | 📝 |
takeRight | 📝 |
takeRightWhile | 📝 |
takeWhile | 📝 |
union | 📝 |
unionBy | 📝 |
unionWith | 📝 |
uniq | 📝 |
uniqBy | 📝 |
uniqWith | 📝 |
unzip | 📝 |
unzipWith | 📝 |
without | 📝 |
xor | 📝 |
xorBy | 📝 |
xorWith | 📝 |
zip | 📝 |
zipObject | 📝 |
zipObjectDeep | ✅ |
zipWith | 📝 |
"Collection" 메서드
함수 이름 | 구현 상태 |
---|---|
countBy | 📝 |
every | ❌ |
filter | ❌ |
find | ❌ |
findLast | ❌ |
flatMap | ❌ |
flatMapDeep | ❌ |
flatMapDepth | ❌ |
forEach | ❌ |
forEachRight | ❌ |
groupBy | 📝 |
includes | ❌ |
invokeMap | ❌ |
keyBy | 📝 |
map | ❌ |
orderBy | 📝 |
partition | 📝 |
reduce | ❌ |
reduceRight | ❌ |
reject | ❌ |
sample | 📝 |
sampleSize | 📝 |
shuffle | 📝 |
size | ❌ |
some | ❌ |
sortBy | ❌ |
"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" 메서드
함수 이름 | 구현 상태 |
---|---|
castArray | ❌ |
clone | 📝 |
cloneDeep | ❌ |
cloneDeepWith | ❌ |
cloneWith | ❌ |
conformsTo | ❌ |
eq | ❌ |
gt | ❌ |
gte | ❌ |
isArguments | ❌ |
isArray | ❌ |
isArrayBuffer | ❌ |
isArrayLike | ❌ |
isArrayLikeObject | ❌ |
isBoolean | ❌ |
isBuffer | ❌ |
isDate | ❌ |
isElement | ❌ |
isEmpty | ❌ |
isEqual | ❌ |
isEqualWith | ❌ |
isError | ❌ |
isFinite | ❌ |
isFunction | ❌ |
isInteger | ❌ |
isLength | ✅ |
isMap | ❌ |
isMatch | ❌ |
isMatchWith | ❌ |
isNaN | ❌ |
isNative | ❌ |
isNil | 📝 |
isNull | 📝 |
isNumber | ❌ |
isObject | ❌ |
isObjectLike | ❌ |
isPlainObject | ❌ |
isRegExp | ❌ |
isSafeInteger | ❌ |
isSet | ❌ |
isString | ❌ |
isSymbol | ❌ |
isTypedArray | ❌ |
isUndefined | 📝 |
isWeakMap | ❌ |
isWeakSet | ❌ |
lt | ❌ |
lte | ❌ |
toArray | ❌ |
toFinite | ❌ |
toInteger | ❌ |
toLength | ❌ |
toNumber | ❌ |
toPlainObject | ❌ |
toSafeInteger | ❌ |
toString | ❌ |
"Math" 메서드
함수 이름 | 구현 상태 |
---|---|
add | ❌ |
ceil | ❌ |
divide | ❌ |
floor | ❌ |
max | ✅ |
maxBy | 📝 |
mean | 📝 |
meanBy | 📝 |
min | ✅ |
minBy | 📝 |
multiply | ❌ |
round | ❌ |
subtract | ❌ |
sum | 📝 |
sumBy | ❌ |
"Number" 메서드
함수 이름 | 구현 상태 |
---|---|
clamp | 📝 |
inRange | 📝 |
random | 📝 |
"Object" 메서드
함수 이름 | 구현 상태 |
---|---|
assign | ❌ |
assignIn | ❌ |
assignInWith | ❌ |
assignWith | ❌ |
at | ❌ |
create | ❌ |
defaults | ❌ |
defaultsDeep | ❌ |
findKey | ❌ |
findLastKey | ❌ |
forIn | ❌ |
forInRight | ❌ |
forOwn | ❌ |
forOwnRight | ❌ |
functions | ❌ |
functionsIn | ❌ |
get | ✅ |
has | ❌ |
hasIn | ❌ |
invert | 📝 |
invertBy | ❌ |
invoke | ❌ |
keys | ❌ |
keysIn | ❌ |
mapKeys | ❌ |
mapValues | ❌ |
mapValues | ❌ |
merge | ❌ |
mergeWith | ❌ |
omit | 📝 |
omitBy | 📝 |
pick | 📝 |
pickBy | 📝 |
result | ❌ |
set | ✅ |
setWith | ❌ |
toPairs | ❌ |
toPairsIn | ❌ |
transform | ❌ |
unset | ❌ |
update | ❌ |
updateWith | ❌ |
values | ❌ |
valuesIn | ❌ |
"String" 메서드
함수 이름 | 구현 상태 |
---|---|
camelCase | 📝 |
capitalize | 📝 |
deburr | ❌ |
endsWith | ✅ |
escape | ❌ |
escapeRegExp | ❌ |
kebabCase | 📝 |
lowerCase | 📝 |
lowerFirst | ❌ |
pad | ❌ |
padEnd | ❌ |
padStart | ❌ |
parseInt | ❌ |
repeat | ❌ |
replace | ❌ |
snakeCase | 📝 |
split | ❌ |
startCase | ❌ |
startsWith | ✅ |
template | ❌ |
toLower | ❌ |
toUpper | ❌ |
trim | ❌ |
trimEnd | ❌ |
trimStart | ❌ |
truncate | ❌ |
unescape | ❌ |
upperCase | 📝 |
upperFirst | 📝 |
words | ❌ |
"Util" 메서드
함수 이름 | 구현 상태 |
---|---|
attempt | ❌ |
bindAll | ❌ |
cond | ❌ |
confirms | ❌ |
constant | ❌ |
defaultTo | ❌ |
flow | ❌ |
flowRight | ❌ |
identity | 📝 |
iteratee | ❌ |
matches | ❌ |
matchesProperty | ❌ |
method | ❌ |
methodOf | ❌ |
mixin | 지원하지 않음 |
noConflict | 지원하지 않음 |
noop | ❌ |
nthArg | ❌ |
over | ❌ |
overEvery | ❌ |
overSome | ❌ |
property | ❌ |
propertyOf | ❌ |
range | 📝 |
rangeRight | 📝 |
runInContext | 지원하지 않음 |
stubArray | ❌ |
stubFalse | ❌ |
stubObject | ❌ |
stubString | ❌ |
stubTrue | ❌ |
times | ❌ |
toPath | ❌ |
uniqueId | ❌ |