By Chason ArthurRevision 104.027Published Updated

Comparison / Choose a boundary

Choose the mechanism for the failure.

TypeScript checks the program before it runs. A runtime validator checks the data that actually arrives. This lab uses both, then protects the workflow and asynchronous results separately.

This comparison separates the implementation pattern from the environment used to explore it. A general playground is useful for editing freely; this lab adds a fixed failure, a readable execution trace and a direct path from the result to its source.

Where each choice fits

ApproachUseful whenTradeoffConnection to this lab
TypeScript assertionAn invariant has already been established elsewhere.Adds no runtime data validation.The broken price example shows the consequence of trusting it too early.
Hand-written validatorA small, inspectable contract with a few fields.You maintain every edge case and error message.Used here to make the actual checks easy to follow.
Shared schema or generated API typesMany endpoints or consumers must agree on a contract.Generated static types still need a trustworthy runtime boundary.Extend this lab by generating types and validating the received payload.
Official TypeScript PlaygroundExplore compiler behavior, type relationships and emitted JavaScript.A focused type experiment asks a different question from a complete UI workflow.Use it beside this lab to isolate the branded-ID or conditional-type example.
StackBlitzEdit and run a larger frontend or Node project in an online development environment.A general IDE leaves the learning path and failure scenario to the author.This lab supplies predetermined failures, plain-language traces and a matching source package.

Compare the same input

  1. Choose one scenario and predict the outcome.
  2. Run it without safeguards and retain the visible result.
  3. Change only the implementation, then run again.
  4. Inspect the source responsible for the difference.
  5. Name the guarantee that changed and the guarantee that remains outside the experiment.

The React application runs real compiled TypeScript against three invented sample responses. It makes no customer API calls. The public controls choose reviewed examples; they do not execute visitor-supplied code.

Run the comparison

Primary references and further reading

References support the language and runtime concepts. The lesson, scenarios and explanations are original Zyel Lab material.

Keep exploring

Follow the question you have next.

Build the safeguards

Eight explained steps, tradeoffs, pitfalls and a checkpoint before moving on.

Read the tutorial

Compare the choices

Choose a pattern and an environment for the problem you actually have.

Compare approaches