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.
shell
git clone https://github.com/LearningTypeScript/projects learning-typescript-projectscd learning-typescript-projectsnpm i
shell
git clone https://github.com/LearningTypeScript/projects learning-typescript-projectscd learning-typescript-projectsnpm i
Open your editor in this project's directory:
shell
code projects/declaration-files/type-illusions
shell
code projects/declaration-files/type-illusions
In your terminal, run the TypeScript compiler via the tsc
script.
For example, to start the TypeScript compiler in watch mode:
shell
npm run tsc -- --watch
shell
npm run 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
Note: your terminal should be in the
type-illusions
directory, not the root repository's directory.
- Don't use
any
or leave any implicitany
s. - Don't change any runtime code behavior. You're just working in the type system.