프로젝트 소개
getorset-anything은 흔한 패턴을 감싸는 작은 npm 패키지입니다. Map이나 일반 객체에서 키를 조회하고, 키가 없으면 초기값을 생성합니다. README는 Map이 배열을 담고 있을 때 호출자가 undefined를 확인하고, 빈 배열을 만들고, 설정한 뒤 push해야 하는 예시로 동기를 설명합니다. 이 패키지는 그 조회-또는-초기화 단계를 한 번의 호출로 수행하는 mapGetOrSet과 objGetOrSet 함수를 제공합니다.
사용법은 Map과 객체 모두에 대해 제시됩니다. Map의 경우 mapGetOrSet(map, 'abc', () => [])는 기존 배열을 반환하거나 새 배열을 생성해 저장합니다. 객체의 경우 objGetOrSet(obj, 'abc', () => [])도 같은 역할을 합니다. README는 구현이 값을 찾았을 때 별도의 has() 검사를 피하고 즉시 반환한다고 언급하며, 이를 성능 고려 사항으로 제시합니다.
TypeScript 지원은 핵심 기능입니다. README는 추가 설정이 필요 없다고 밝히고 타입 추론이 작동하는 모습을 보여줍니다. 팩토리 반환 타입은 Map이나 객체의 값 타입과 일치해야 하며, 반환된 값은 그 타입을 가집니다. 예시에서는 number[]를 반환하는 올바른 팩토리와 객체를 반환하는 잘못된 팩토리가 타입 검사기에서 거부되는 모습, 그리고 number 배열에 문자열을 push할 때의 타입 오류를 보여줍니다.
이 패키지는 같은 저자의 작은 TypeScript 유틸리티 모음의 일부로, is-what, is-where, merge-anything, check-anything, remove-anything, map-anything, filter-anything, copy-anything, case-anything, flatten-anything, nestify-anything 등이 포함됩니다. 설치는 npm i getorset-anything으로 합니다. README는 TypeScript 중심 외에 런타임 의존성, 번들 크기, 벤치마크, 브라우저 지원을 설명하지 않습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.