devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
54 lines (48 loc) • 3.09 kB
TypeScript
/**
* DevExtreme (core/index.d.ts)
* Version: 21.2.4
* Build date: Mon Dec 06 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
type KeyOf<T> = T extends never ? never : keyof T;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
type KeysOf<T1, T2, T3, T4, T5, T6, T7, T8> =
KeyOf<T1> | KeyOf<T2> | KeyOf<T3> | KeyOf<T4> | KeyOf<T5> | KeyOf<T6> | KeyOf<T7> | KeyOf<T8>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
type Seal<T, K extends keyof any> = T & {
[P in Exclude<K, keyof T>]?: never;
};
// Exact props check, see https://github.com/Microsoft/TypeScript/issues/12936
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export type Xor<T1, T2 = never, T3 = never, T4 = never, T5 = never, T6 = never, T7 = never, T8 = never, T9 = never> =
| Seal<T1, KeysOf<T2, T3, T4, T5, T6, T7, T8, T9>>
| Seal<T2, KeysOf<T1, T3, T4, T5, T6, T7, T8, T9>>
| Seal<T3, KeysOf<T1, T2, T4, T5, T6, T7, T8, T9>>
| Seal<T4, KeysOf<T1, T2, T3, T5, T6, T7, T8, T9>>
| Seal<T5, KeysOf<T1, T2, T3, T4, T6, T7, T8, T9>>
| Seal<T6, KeysOf<T1, T2, T3, T4, T5, T7, T8, T9>>
| Seal<T7, KeysOf<T1, T2, T3, T4, T5, T6, T8, T9>>
| Seal<T8, KeysOf<T1, T2, T3, T4, T5, T6, T7, T9>>
| Seal<T9, KeysOf<T1, T2, T3, T4, T5, T6, T7, T8>>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export type DeepPartial<T> = T extends object ? {
[P in keyof T]?: DeepPartial<T[P]>;
} : T;
// Omit does not exist in TS < 3.5.1
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export type Skip<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;