@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
5 lines • 345 B
TypeScript
//#region src/types/helpers.d.ts
type Tail<Tuple> = Tuple extends [unknown, ...(infer LastItems)] ? LastItems : never;
type DeepNonNullable<T> = T extends object ? T extends ((...args: unknown[]) => unknown) ? T : { [K in keyof T]-?: DeepNonNullable<NonNullable<T[K]>> } : NonNullable<T>;
//#endregion
export { type DeepNonNullable, type Tail };