I am trying to convert a type that looks like:
import type {Person} from '@myorg/common-types"
export type MemberInfo = Required<Person>;
where person is defined in a common library:
export type Person = {
/**
*
* @type {string}
* @memberof {Person}
*/
name: string;
}
The output type looks something like:
```json
{
"type": "object",
"properties": {
"name": "{string}"
}
}
I used the following in an npm script:
{
"scripts": {
"generate:schema":"quicktype --src ./types/post/memberInfoTypes.ts --src-lang typescript --lang schema --out ./schemas/post/memberInfoSchema.json"
}
}
Issue Type
Quicktype Output (JSON Schema from Typescript)
Context (Environment, Version, Language)
Nodejs Version: v20.19.0
Package Manager: pnpm 10.6.2
OS: MacOS 15.4
Input Format: Typescript
Output Language: JSON Schema
CLI
Version: 23.0.171
Description
I would like to take existing typescript types and convert them to json schema for validation using something like ajv.
Input Data
export type MemberInfo = Required<Person>;
where person is defined in a common library:
export type Person = {
/**
*
* @type {string}
* @memberOf {Person}
*/
name: string;
}
Expected Behaviour / Output
The type string is valid JSON Schema while the type "{string}" is not.
{
"type": "object",
"properties": {
"name": "string"
}
}
Current Behaviour / Output
{
"type": "object",
"properties": {
"name": "{string}"
}
}
My wild guess is that it may be reading the JSDoc annotations and using them to infer types instead of relying on the typescript definition.
Steps to Reproduce
Clone the repo: https://github.com/vamsiampolu/quicktype-ts-to-json-schema-issue
- Run
nvm use to set the Node version
- Run
pnpm install to install the dependencies.
- Run the script
pnpm generate:schema from the repository
Possible Solution
I am trying to convert a type that looks like:
where person is defined in a common library:
export type Person = {
/**
*
* @type {string}
* @memberof {Person}
*/
name: string;
}
I used the following in an npm script:
Issue Type
Quicktype Output (JSON Schema from Typescript)
Context (Environment, Version, Language)
Nodejs Version: v20.19.0
Package Manager: pnpm 10.6.2
OS: MacOS 15.4
Input Format: Typescript
Output Language: JSON Schema
CLI
Version: 23.0.171
Description
I would like to take existing typescript types and convert them to json schema for validation using something like ajv.
Input Data
where person is defined in a common library:
Expected Behaviour / Output
The type
stringis valid JSON Schema while the type"{string}"is not.{ "type": "object", "properties": { "name": "string" } }Current Behaviour / Output
{ "type": "object", "properties": { "name": "{string}" } }My wild guess is that it may be reading the JSDoc annotations and using them to infer types instead of relying on the typescript definition.
Steps to Reproduce
Clone the repo: https://github.com/vamsiampolu/quicktype-ts-to-json-schema-issue
nvm useto set the Node versionpnpm installto install the dependencies.pnpm generate:schemafrom the repositoryPossible Solution