Move global declarations into a namespace for 'amap-js-api'.

This commit is contained in:
Daniel Rosenwasser 2019-04-03 13:36:30 -07:00
parent 8788cebbff
commit 2e1e8e6661

View File

@ -1,12 +1,12 @@
type Omit<T, E extends keyof T> = {
[K in Exclude<keyof T, E>]: T[K]
};
declare namespace AMap {
type Omit<T, E extends keyof T> = {
[K in Exclude<keyof T, E>]: T[K]
};
type OptionalKey<T> = { [K in keyof T]-?: undefined extends T[K] ? K : never }[keyof T];
// type OmitUndefined<M> = Omit<M, { [K in keyof M]: M[K] extends undefined ? K : never }[keyof M]>;
// type PickUndefined<M> = Omit<M, keyof OmitUndefined<M>>;
type OptionalKey<T> = { [K in keyof T]-?: undefined extends T[K] ? K : never }[keyof T];
type Merge<O, T> =
{ [K in Exclude<keyof O, keyof T | OptionalKey<O>>]-?: O[K]; } &
{ [K in Extract<Exclude<keyof O, keyof T>, OptionalKey<O>>]?: O[K]; } &
T;
type Merge<O, T> =
{ [K in Exclude<keyof O, keyof T | OptionalKey<O>>]-?: O[K]; } &
{ [K in Extract<Exclude<keyof O, keyof T>, OptionalKey<O>>]?: O[K]; } &
T;
}