File tree Expand file tree Collapse file tree 3 files changed +112
-0
lines changed Expand file tree Collapse file tree 3 files changed +112
-0
lines changed Original file line number Diff line number Diff line change 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 } ) ;
Original file line number Diff line number Diff line change 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 > > ;
Original file line number Diff line number Diff line change 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 > > ;
You can’t perform that action at this time.
0 commit comments