Modeling Schema.org Schema with TypeScript: The Power and Limitations of the TypeScript Type System
JSON-LD Logo in Public Domain.Recently, I published schema-dts (npm, GitHub), an open source library that models JSON-LD Schema.org in TypeScript. A big reason I wanted to do this project is because I knew some TypeScript type system features, such as discriminated type unions, powerful type inference, nullability checking, and type intersections, present an opportunity to both model what Schema.org-conformant JSON-LD looks like, while also providing ergonomic completions to the developer.
In a series of posts, I'll go over some of the Structured Data concepts that lent themselves well to TypeScript's type system, and those concepts that didn't. First up: the type hierarchy of JSON-LD Schema.org Schema, and how can be represented in TypeScript.
Read more →