Skip to content

Instantly share code, notes, and snippets.

View 3fuyang's full-sized avatar
🥳
Absoluting

fwio 3fuyang

🥳
Absoluting
View GitHub Profile
@3fuyang
3fuyang / TypeChallenges.ts
Last active November 10, 2023 15:45
Type Challenges
/* CheatSheet: A common pattern and its three states */
// Left, Right, Exist
type L<T extends any[]> = T extends [infer L, ... infer R] ? L : T
type R<T extends any[]> = T extends [infer L, ... infer R] ? R : T
type E<T extends any[]> = T extends [infer L, ... infer R] ? true : false
// 1, [2], true
type L1 = L<[1, 2]>
type R1 = R<[1, 2]>
type E1 = E<[1, 2]>
// 1, [], true