schema-dts
JSON-LD TypeScript types for Schema.org vocabulary.
schema-dts provides TypeScript definitions for
Schema.org vocabulary in JSON-LD format. The typings are
exposed as complete sets of discriminated type unions, allowing for easy
completions and stricter validation.
Note: This is not an officially supported Google product.
Usage
To use the typings for your project, simply add the schema-dts
NPM package to
your project:
npm install schema-dts
Then you can use it by importing "schema-dts"
.
Examples
Defining Simple Properties
import {Person} from "schema-dts";
const inventor: Person = {
"@type": "Person",
"name": "Grace Hopper",
"disambiguatingDescription": "American computer scientist",
"birthDate": "1906-12-09",
"deathDate": "1992-01-01",
"awards": [
"Presidential Medal of Freedom",
"National Medal of Technology and Innovation",
"IEEE Emanuel R. Piore Award",
]
};
Using 'Context'
JSON-LD requires a "@context"
property to be set on the top-level JSON object,
to describe the URIs represeting the types and properties being referenced.
schema-dts provides the WithContext<T>
type to facilitate this.
import {Organization, Thing, WithContext} from "schema-dts";
export function JsonLd<T extends Thing>(json: T): string {
return `<script type="application/ld+json">
${JSON.stringify(json)}
</script>`;
}
export const MY_ORG = JsonLd<Organization>({
"@context": "https://schema.org",
"@type": "Corporation",
"name": "Google LLC"
});