What is schema-dts?
The schema-dts npm package provides TypeScript definitions for Schema.org vocabulary, allowing developers to create structured data in a type-safe manner. This package is useful for generating JSON-LD scripts for SEO and other purposes.
What are schema-dts's main functionalities?
Creating a Person schema
This feature allows you to create a Person schema using TypeScript definitions. The code sample demonstrates how to define a person named John Doe who works as a Software Engineer for a company named Tech Company.
const person: schema.Person = {
'@type': 'Person',
name: 'John Doe',
jobTitle: 'Software Engineer',
worksFor: {
'@type': 'Organization',
name: 'Tech Company'
}
};
Creating an Event schema
This feature allows you to create an Event schema using TypeScript definitions. The code sample demonstrates how to define an event named Tech Conference 2023, including its start date and location.
const event: schema.Event = {
'@type': 'Event',
name: 'Tech Conference 2023',
startDate: '2023-11-01T09:00:00Z',
location: {
'@type': 'Place',
name: 'Convention Center',
address: '123 Main St, Anytown, USA'
}
};
Creating a Product schema
This feature allows you to create a Product schema using TypeScript definitions. The code sample demonstrates how to define a product named Smartphone, including its brand and price.
const product: schema.Product = {
'@type': 'Product',
name: 'Smartphone',
brand: {
'@type': 'Brand',
name: 'TechBrand'
},
offers: {
'@type': 'Offer',
price: '699.99',
priceCurrency: 'USD'
}
};
Other packages similar to schema-dts
jsonld
The jsonld package is a JSON-LD processor and API implementation for JavaScript. It allows you to work with JSON-LD data, including parsing, serializing, and transforming JSON-LD documents. Unlike schema-dts, it does not provide TypeScript definitions for Schema.org vocabulary but focuses on JSON-LD processing.
schema-org
The schema-org package provides a set of tools for working with Schema.org data in JavaScript. It includes utilities for creating, validating, and manipulating Schema.org data. While it offers similar functionalities to schema-dts, it does not provide TypeScript definitions and focuses more on data manipulation and validation.
structured-data-testing-tool
The structured-data-testing-tool package is a Node.js library for testing structured data against Schema.org definitions. It allows you to validate JSON-LD, Microdata, and RDFa formats. Unlike schema-dts, it is primarily focused on testing and validation rather than generating structured data.
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"
});