Skip to content

Commit dac4858

Browse files
committed
add day 6, 7 and 8
1 parent 7c9bac6 commit dac4858

File tree

3 files changed

+112
-0
lines changed

3 files changed

+112
-0
lines changed

2024/06/index.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import type { Expect, Equal } from "type-testing";
2+
3+
const createRoute = <Route extends string | number>(
4+
author: string,
5+
route: Route,
6+
) => {
7+
console.log(
8+
`[createRoute] route created by ${author} at ${Date.now().toLocaleString()}`,
9+
);
10+
return route;
11+
};
12+
13+
// ------------------- Test section ---------------------
14+
15+
const oneMill = createRoute("🌩️Donner", 100_000_000);
16+
type t0_actual = typeof oneMill; // =>
17+
type t0_expected = 100_000_000; // =>
18+
type t0 = Expect<Equal<t0_actual, t0_expected>>;
19+
20+
const two = createRoute("🔴Rudolph", 2);
21+
type t1_actual = typeof two; // =>
22+
type t1_expected = 2; // =>
23+
type t1 = Expect<Equal<t1_actual, t1_expected>>;
24+
25+
const three = createRoute("💨Dasher", "3");
26+
type t2_actual = typeof three; // =>
27+
type t2_expected = "3"; // =>
28+
type t2 = Expect<Equal<t2_actual, t2_expected>>;
29+
30+
// @ts-expect-error
31+
createRoute("🌟Vixen", true);
32+
33+
// @ts-expect-error
34+
createRoute("💃Dancer", [1]);
35+
36+
// @ts-expect-error
37+
createRoute("☄️Comet", { 1: 1 });

2024/07/index.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import type { Expect, Equal } from "type-testing";
2+
3+
const createRoute = <const Route extends string[]>(
4+
author: string,
5+
route: Route,
6+
) => ({
7+
author,
8+
route,
9+
createdAt: Date.now(),
10+
});
11+
12+
// ------------------- Test section ---------------------
13+
14+
const oneMill = createRoute("💨Dasher", [
15+
"Atherton",
16+
"Scarsdale",
17+
"Cherry Hills Village",
18+
]).route;
19+
type t0_actual = typeof oneMill; // =>
20+
type t0_expected = [
21+
// =>
22+
"Atherton",
23+
"Scarsdale",
24+
"Cherry Hills Village",
25+
];
26+
type t0 = Expect<Equal<t0_actual, t0_expected>>;
27+
28+
const two = createRoute("🌟Vixen", ["Detroit", "Cleveland", "Dayton"]).route;
29+
type t1_actual = typeof two; // =>
30+
type t1_expected = [
31+
// =>
32+
"Detroit",
33+
"Cleveland",
34+
"Dayton",
35+
];
36+
type t1 = Expect<Equal<t1_actual, t1_expected>>;

2024/08/index.d.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import type { Expect, Equal } from "type-testing";
2+
3+
// use d.ts file
4+
declare global {
5+
interface ProcessEnv {
6+
MOOD_LIGHTS: "true";
7+
BATH_TEMPERATURE: "327.59";
8+
STRAWBERRIES: "chocolate";
9+
}
10+
}
11+
12+
// Solution in advent of ts website:
13+
// declare global {
14+
// namespace NodeJS {
15+
// interface ProcessEnv {
16+
// MOOD_LIGHTS: "true";
17+
// BATH_TEMPERATURE: "327.59";
18+
// STRAWBERRIES: "chocolate";
19+
// }
20+
// }
21+
// }
22+
// export {};
23+
24+
// ------------------- Test section ---------------------
25+
26+
const { MOOD_LIGHTS } = process.env;
27+
type t0_actual = typeof MOOD_LIGHTS; // =>
28+
type t0_expected = "true"; // =>
29+
type t0 = Expect<Equal<t0_actual, t0_expected>>;
30+
31+
const { BATH_TEMPERATURE } = process.env;
32+
type t1_actual = typeof BATH_TEMPERATURE; // =>
33+
type t1_expected = "327.59"; // =>
34+
type t1 = Expect<Equal<t1_actual, t1_expected>>;
35+
36+
const { STRAWBERRIES } = process.env;
37+
type t2_actual = typeof STRAWBERRIES; // =>
38+
type t2_expected = "chocolate"; // =>
39+
type t2 = Expect<Equal<t2_actual, t2_expected>>;

0 commit comments

Comments
 (0)