ajv-validator / ajv-validator/ajv-merge-patch

Type inference support

Aperta
#43 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
JavaScript
Stelle
47
Fork
19
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Let's admit a simple base schema like this one:

```ts
const SnakeSchema = {
type: 'object',
properties: {
name: { type: 'string' },
foo_bar: { type: 'string' },
},
} as const;
```

I want the type inference to work within my application, so I use the `JTDDataType` utility.

```ts
import { JTDDataType } from 'ajv/dist/jtd';

const SnakeSchema = { /* ... */ } as const;

type Snake = JTDDataType;
```

Now, let's write a simple patch:

```ts
const KebabSchema = {
$patch: {
source: SnakeSchema,
with: [
{ op: 'move', from: '/properties/foo_bar', to: '/properties/fooBar' },
],
},
} as const;
```

The only way I found to get the infered type is by doing this:

```ts
type Kebab = Omit & {
fooBar: SnakeSchema['foo_bar'];
```

As it is not really DRY, I was wondering if there is something I miss in the docs... If not, maybe is there something that can be done in the project?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.