type Result1 = Omit<{ a: number; b: string; c: boolean }, 'b' | 'c'>;
interface TState {
name: string;
age: number;
like: string[];
}
interface TSingleState {
name: string;
age: number;
}
interface TSingleState extends Pick<TState, 'name' | 'age'> {}
type Result = Exclude<'1' | '2', '2' | '3'>;
type Result2 = Exclude<string, '1'>;
type Result3 = Exclude<{ a: string | number }, { a: number }>;
type Result1 = Extract<'1' | '2', '2' | '3'>;
type Result2 = Extract<string, '1'>;
type Result3 = Extract<{ a: number }, { a: string | number }>;
type Result4 = Extract<string | number, number | boolean>;
type NonNullable<T> = T extends null | undefined ? never : T;