UNPKG

@dulysse1/better-node

Version:

Improve Node types & add object properties

34 lines (28 loc) 780 B
/// <reference path="operators.d.ts" /> /// <reference path="_union.d.ts" /> declare type _Object<T = any> = { [key: string]: T; [key: number]: T; [key: symbol]: T; }; declare type _Merge<O1 extends _Object, O2 extends _Object> = { [K in keyof O1 | keyof O2]: _Equal< O1[_Satisfy<K, keyof _Object>], unknown > extends true ? O2[_Satisfy<K, keyof _Object>] : O1[_Satisfy<K, keyof _Object>]; }; declare type _Required<O extends _Object> = { [K in keyof O]-?: O[_Satisfy<K, keyof _Object>]; }; declare type _Partial<O extends _Object> = { [K in keyof O]?: O[_Satisfy<K, keyof _Object>]; }; declare type _Omit< O extends _Object, K extends keyof _Object, E = _UnionExclude<keyof O, K> > = { [K in _Satisfy<E, keyof _Object>]: O[_Satisfy<K, keyof _Object>]; };