UNPKG

@yandex/ymaps3-types

Version:

Types for ymaps3 maps library

19 lines (18 loc) 720 B
type DeepReadonly<T> = T extends (infer R)[] ? DeepReadonlyArray<R> : T extends Function ? T : T extends object ? DeepReadonlyObject<T> : T; interface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> { } type DeepReadonlyObject<T> = { readonly [P in keyof T]: DeepReadonly<T[P]>; }; type Nullable<T> = T | null; type Change<T> = { old: T; new: T; } | null; type Changes<T> = { readonly [TKey in keyof T]: Change<T[TKey]>; }; type WithDefaults<Props, DefaultProps extends Partial<Props>> = Props & { [K in keyof DefaultProps]: K extends keyof Props ? NonNullable<Props[K]> : never; }; export { DeepReadonly, DeepReadonlyArray, DeepReadonlyObject, Nullable, Change, Changes, WithDefaults };