The idea
TypeScript checks JavaScript programs using types. It can infer a type from a value or use an explicit annotation. Interfaces and type aliases describe shapes; they do not create runtime objects or automatically check data received from the network.
Worked example
A product shape requires an id string and a price number. Assigning a string price to a value checked against that shape produces a type error. Receiving the same bad shape through an unchecked network response still needs a runtime check.
Try it
Sketch a product type with three fields and two sample values, one valid and one invalid. Identify the expected static error. Write why a declared type on a fetched response would not alone prove the actual response matches it.
