Primitive Cooking
A Learning TypeScript > Unions and Literals 🥗 appetizer project. You'll practice writing type annotations including literal and union types.
Those pesky Java programmers are at it again!
I wrote a few functions for a friend to help arrange meals when I have guests over. The friend worked with their enterprise application development team to "improve" the code. Next thing I know, they've replaced all my TypeScript-y literal and union types with plain old primitive types.
Those Java fans are perfectly good developers -and lovely people- but we don't see eye-to-eye on type systems. Now TypeScript is reporting type errors on my code. Could you please correct the type annotations in my files -- and maybe a couple bugs the improved types helped TypeScript find?
Setup
If you haven't yet, set up the github.com/LearningTypeScript/projects repository locally.
shellgit clone https://github.com/LearningTypeScript/projects learning-typescript-projectscd learning-typescript-projectsnpm i
shellgit clone https://github.com/LearningTypeScript/projects learning-typescript-projectscd learning-typescript-projectsnpm i
Open your editor in this project's directory:
shellcode projects/unions-and-literals/primitive-cooking
shellcode projects/unions-and-literals/primitive-cooking
In your terminal, run the TypeScript compiler via the tsc script within whichever step you're working on.
For example, to start the TypeScript compiler on the first step in watch mode:
shellnpm run tsc -- --project 01-ingredients --watch
shellnpm run tsc -- --project 01-ingredients --watch
Note: your terminal should be in the
primitive-cookingdirectory, not the root repository's directory.
Steps
Notes
- Most of the changes you'll be making are to type annotations.
- The only changes to runtime code behavior will be small typo fixes.
- Don't use
any.