Package Exports
- schema-dts
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (schema-dts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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"
});