Skip to content

Commit ed6f66a

Browse files
committed
add day 10
1 parent 3f52b8d commit ed6f66a

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

2024/10/index.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
enum Gift {
2+
Coal = 0,
3+
Train = 1,
4+
Bicycle = 2,
5+
Traditional = 3,
6+
SuccessorToTheNintendoSwitch = 4,
7+
TikTokPremium = 1 << 3,
8+
Vape = 1 << 4,
9+
OnTheMove = Gift.Coal | Gift.Bicycle | Gift.TikTokPremium | Gift.Vape,
10+
OnTheCouch = Gift.Coal |
11+
Gift.SuccessorToTheNintendoSwitch |
12+
Gift.TikTokPremium |
13+
Gift.Vape,
14+
}
15+
16+
// ------------------- Test section ---------------------
17+
18+
const test = <F extends Gift>(flag: F) => flag;
19+
20+
test<Gift.Coal>(0);
21+
test<Gift.Train>(1);
22+
test<Gift.Bicycle>(2);
23+
test<Gift.SuccessorToTheNintendoSwitch>(4);
24+
test<Gift.TikTokPremium>(8);
25+
test<Gift.Vape>(16);
26+
test<Gift.Traditional>(3);
27+
test<Gift.OnTheMove>(26);
28+
test<Gift.OnTheCouch>(28);
29+
30+
// @ts-expect-error
31+
test<Gift.Coal>(10);
32+
// @ts-expect-error
33+
test<Gift.Train>(11);
34+
// @ts-expect-error
35+
test<Gift.Bicycle>(12);
36+
// @ts-expect-error
37+
test<Gift.SuccessorToTheNintendoSwitch>(14);
38+
// @ts-expect-error
39+
test<Gift.TikTokPremium>(18);
40+
// @ts-expect-error
41+
test<Gift.Vape>(116);
42+
// @ts-expect-error
43+
test<Gift.Traditional>(13);
44+
// @ts-expect-error
45+
test<Gift.OnTheMove>(126);
46+
// @ts-expect-error
47+
test<Gift.OnTheCouch>(124);

eslint.config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ export default tseslint.config(
3737
"error",
3838
{ prefer: "type-imports", fixStyle: "separate-type-imports" },
3939
],
40+
"@typescript-eslint/prefer-literal-enum-member": [
41+
"error",
42+
{ allowBitwiseExpressions: true },
43+
],
4044
"@typescript-eslint/no-unused-vars": [
4145
"error",
4246
{

0 commit comments

Comments
 (0)