Appearance
Includes 实现
在类型系统里实现JavaScript的Array.includes方法,这个类型接受两个参数,返回的类型要么是true要么是false。
例如:
ts
type isPillarMen = Includes<['Kars', 'Esidisi', 'Wamuu', 'Santana'], 'Dio'> // expected to be `false`
查看解答
ts
type MyEqual<A, B> = (<T>() => T extends A ? 1:0) extends (<T>() => T extends B ? 1 :0) ? true : false
type Includes<T extends readonly any[], U> = T extends [infer A, ...infer B] ?
MyEqual<A, U> extends true ?
true :
(B extends [] ?
false :
(Includes<B, U> extends true ?true : false)
)
: false