Comments (3)
Proposed declarations:
function indexed<K, V>(items: readonly V[], selector: (item: V) => K): PojoMap<K, V>;
function grouped<K, V>(items: readonly V[], selector: (item: V) => K): PojoMap<K, V[]>;
function map<K, V, U>(map: PojoMap<K, V>, transform: (item: V, key: K) => U): PojoMap<K, U>;
function omit<K, K2 extends K, V>(map: PojoMap<K, V>, keys: readonly K[]): PojoMap<Exclude<K, K2>, V>;
function pick<K, K2 extends K, V>(map: PojoMap<K, V>, keys: readonly K[]): PojoMap<K2, V>;
from pojo-maps.
Put map, omit, and pick on the PojoMap
object.
Implement indexBy, and groupBy as separate exports.
import { PojoMap, indexBy, groupBy } from 'pojo-maps';
from pojo-maps.
Helper for Omit:
type GetTagPrimitive<T extends object> = T extends string ? string : T extends number ? number : T extends symbol ? symbol : T extends boolean ? boolean : never;
type ExcludeFullPrimitives<T extends PropertyKey> = string extends T ? never : number extends T ? never : symbol extends T ? never : T;
type OnlyClosedPrimitives<T extends PropertyKey> = T extends object ? GetTagPrimitive<T> : ExcludeFullPrimitives<T>;
type PojoMapDotOmit<T extends PojoMap<any, any>, K2 extends keyof T> = T extends PojoMap<infer K, infer V> ?
PojoMap<Exclude<K, OnlyClosedPrimitives<K2>>, V> : never;
from pojo-maps.
Related Issues (9)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pojo-maps.