Structural type system

In the type system of a programming language, a type is an object with a name and a structure. Some types have very simple data structures (such as primitives) while others use complex structures (such as classes).

The type system can use two different strategies to validate that a given value matches the desired type:

  • Nominal type system: In this type system, values are matched against a type by its name
  • Structural type system: In this type system, values are matched against a type by its structure

The TypeScript type system is a structural type system because the values are matched against a type by its structure, as the following code snippet demonstrates:

interface Person { name: string; surname: string; } function ...

Get Learning TypeScript 2.x - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.