Sunny-117 / js-challenges

✨✨✨ Challenge your JavaScript programming limits step by step

Home Page:https://juejin.cn/column/7244788137410560055

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

myExclude

FailurMan opened this issue · comments

//使用ts实现exclude方法
type MyExclude<T, U> = T extends U ? never : T;

type eg = MyExclude<string | number | boolean, number | boolean>;
//extends前面T是泛型会进行分发
type MyExclude<T, V> = T extends V ? never : T;

//相当于 ('a' extends 'a'|'c' ? never : 'a') | ('b' extends 'a'|'c' ? never : 'b')
//普通字面量不会进行分发  'a'|'b' extends 'a'|'c' ? 1 : 2   //2
type a = MyExclude<"a" | "b", "a" | "c">;