@egjs/flicking
Version:
Everyday 30 million people experience. It's reliable, flexible and extendable carousel.
27 lines (22 loc) • 654 B
text/typescript
/*
* Copyright (c) 2015 NAVER Corp.
* egjs projects are licensed under the MIT license
*/
export type ValueOf<T> = T[keyof T];
export type LiteralUnion<T extends U, U = string> = T | (Pick<U, never> & {_?: never});
export interface ArrayLike<T> {
[index: number]: T;
length: number;
}
export type Unique<T, U> = Pick<T, Exclude<keyof T, keyof U>>;
export type MergeObject<T, U> = {
[K in keyof T & keyof U]: T[K] extends Record<string, unknown>
? U[K] extends Record<string, unknown>
? Merged<T[K], U[K]>
: T[K]
: T[K];
};
export type Merged<From, To> =
Unique<From, To>
& Unique<To, From>
& MergeObject<From, To>;