devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
79 lines (71 loc) • 4.86 kB
TypeScript
/**
* DevExtreme (core/index.d.ts)
* Version: 22.1.9
* Build date: Tue Apr 18 2023
*
* Copyright (c) 2012 - 2023 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 submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type KeyOf<T> = T extends never ? never : keyof T;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
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 submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
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 submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
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 submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type Scalar = undefined | null | string | String | number | Number | bigint | BigInteger | boolean | Boolean | Date | Function | Symbol | Array<unknown>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type DeepPartial<T> = T extends Scalar ? T : {
[P in keyof T]?: DeepPartial<T[P]>;
};
// Omit does not exist in TS < 3.5.1
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type Skip<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type ItemType<T> = T extends (infer TItem)[] ? TItem : T;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type Property<T, TPropName extends string> = T extends Partial<Record<TPropName, infer TValue>> ? TValue : never;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type OwnPropertyType<T, TPropName extends string> = Property<ItemType<T>, TPropName>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type PropertyType<T, TProp extends string> =
TProp extends `${infer TOwnProp}.${infer TNestedProps}`
? PropertyType<OwnPropertyType<T, TOwnProp>, TNestedProps>
: OwnPropertyType<T, TProp>;