Type Illusions
A Learning TypeScript > Declaration Files 🍲 entree project.
Salutations! Come one, come all - to the amazing Type Illusionist!
It's no trick, no common shenanigan. These illusions will amaze and astound.
Watch as I make the entire ./show.ts
file... disappear!
✨ Poof! ✨
But wait, there's more!
I will also disappear all the type annotations in ./index.ts
, leaving behind only JavaScript!
Now, our audience volunteer -that's you!- will have to add those type annotations back to prove the magic did not harm the code's runtime behavior.
Setup
If you haven't yet, set up the github.com/LearningTypeScript/projects repository locally.
git clone https://github.com/LearningTypeScript/projects learning-typescript-projects
cd learning-typescript-projects
npm i
Change your terminal directory to this project's:
cd projects/declaration-files/type-illusions
In a terminal, start the TypeScript compiler in watch mode:
tsc --watch
Files
index.ts
: Add back type imports from"./show"
and corresponding type annotationsshow.d.ts
: Declare types for the missing show module here based on the remaining code inindex.ts
index.solution.ts
andshow.solution.ts
: Solution code
Notes
- Don't use
any
or leave any implicitany
s. - Don't change any runtime code behavior. You're just working in the type system.