The Brief
What changes here. Every step so far told you what to do. This states what must be true when you are finished.
The project. The Knowledge Explorer from the React course, converted to TypeScript, with every value entering the application validated at the boundary rather than assumed.
The acceptance criteria. Every one is checkable by another person from your repository.
1. strict: true, and npx tsc --noEmit passes with no errors.
2. Every component's props are typed, including every callback prop.
3. The four states are one discriminated union, with an exhaustiveness check.
4. Every value entering the application is validated at the boundary: API responses, URL parameters, anything from storage.
5. No as on data from outside, anywhere.
6. Every remaining any has a comment saying why, and there are few.
7. Nothing is typed twice: near-copies are derived with utility types.
8. At least one generic that genuinely earns its place, not one added to show generics.
9. @ts-ignore appears nowhere; @ts-expect-error appears only with a reason.
10. The application handles a deliberately malformed response cleanly, and you have tested that.
11. The README says what converting it caught, specifically.
12. It still works: deployed, and used from a phone.
✦ Criterion 11 is the one that matters
Not the type gymnastics. The list of real bugs the conversion surfaced is the honest measure of whether this was worth doing, and it is the paragraph anybody technical will read first.
Mark this lesson complete
Signed in, your progress follows you to every device.