@controladad/ng-base
Version:
Everything you need for Angular
22 lines (21 loc) • 709 B
TypeScript
import type { Observable } from 'rxjs';
export interface ItemRecord<T, U = unknown> {
label: string;
value: T;
alt?: U;
icon?: string;
disabled?: boolean;
permission?: string;
category?: number | string;
additionalData?: string;
}
export type ItemRecords$<T, U = unknown> = Observable<ItemRecord<T, U>[] | undefined> | ItemRecord<T, U>[];
export type ItemToId<T> = (item: T) => string | number;
export type Class = {
new (...args: any[]): any;
};
export type Singleton<T> = T extends any[] ? T[number] : T;
export type AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;
export type DeepPartial<T> = T extends object ? {
[P in keyof T]?: DeepPartial<T[P]>;
} : T;