UNPKG

veui

Version:

Baidu Enterprise UI for Vue.js.

25 lines (18 loc) 725 B
export type KeyType<O, K> = K extends keyof O ? O[K] : {} export type NullableProp<Props> = { [K in keyof Props]: Props[K] extends boolean ? Props[K] : Props[K] | null } export type LooseObject<T extends object> = T & { [key: keyof any]: unknown } export type Promisify<T> = T | Promise<T> export type RemoveNil<T> = T extends null | undefined | infer S ? S : T export type RequiredKey<T, ChildrenKey extends string = 'children'> = { [K in keyof T as K extends ChildrenKey ? never : K]: T[K] } & { [K in keyof T as K extends ChildrenKey ? K : never]-?: RemoveNil<T[K]> } // Omit 遇到 [k: string] 这种 key 会有问题 export type SafeOmit<T, Keys> = { [K in keyof T as K extends Keys ? never : K]: T[K] }