Skip to content

Commit 4833af5

Browse files
committed
Documentation
1 parent ec510b8 commit 4833af5

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

readme.md

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ License MIT
7979
- [Unsafe](#types-unsafe)
8080
- [Syntax](#syntax)
8181
- [Parse](#syntax-parse)
82-
- [Param](#syntax-param)
82+
- [Context](#syntax-context)
8383
- [Static](#syntax-static)
8484
- [Limits](#syntax-limits)
8585
- [Values](#values)
@@ -1100,6 +1100,8 @@ import { Parse } from '@sinclair/typebox/syntax'
11001100
11011101
The Parse function can be used to parse TypeScript code into TypeBox types. The left hand result will be a inferred TypeBox type of TSchema. Invalid syntax will result in an undefined return value.
11021102
1103+
[TypeScript Link Here](https://www.typescriptlang.org/play/?moduleResolution=99&module=199#code/JYWwDg9gTgLgBAbzgBQIZQM4FM4F84BmUEIcA5AAIbAB2AxgDarBQD0MAnmFgEYQAerDBxoxU-MgChJdCDQzwAgnAC8KdNgAUZBVFoBzMgEo4ps+YuXLrVnFnylALjgAVAMow9NfdPsK4AEKq6phY2gDaAIwANHAATLEAzAC6xlbpGTZ2cv4Bzi4uAK5gDFgAPOGSGdU1tdVZpi4AMsAwWFCoDGWRAHzRVXWDQ5m2jS1tHV1xfQPDc3MNruPtnWWJPbPzW7VZyRsyOfAAwsFooZoABkj8zjSFIDztsRy3949QeBcm6Vl+x-kAeR4ACssHQYGUEJttjCrIsbq4AHJvdrQ2Ho0yLF5IlFQNEY2FZXD7IA)
1104+
11031105
```typescript
11041106
const A = Parse('string') // const A: TString
11051107

@@ -1115,11 +1117,13 @@ const C = Parse(`{ x: number, y: number }`) // const C: TObject<{
11151117
// }>
11161118
```
11171119
1118-
<a name='syntax-param'></a>
1120+
<a name='syntax-context'></a>
1121+
1122+
### Context
11191123
1120-
### Param
1124+
The Parse function accepts an optional context parameter that enables external types to be referenced within the syntax.
11211125
1122-
The Parse function accepts an optional context parameter that enables external types to be referenced within the syntax. This can be helpful for reusing types in different contexts.
1126+
[TypeScript Link Here](https://www.typescriptlang.org/play/?moduleResolution=99&module=199#code/JYWwDg9gTgLgBAbzgBQIZQM4FM4F84BmUEIcA5AAIbAB2AxgDarBQD0MAnmFgEYQAerDBxoxU-MgChQkWIjgAVLjnxES5KrUbM2nbnwmTJdCDQzwFcALyLlAOgDyPAFZY6MABRI4P33-8BgayscCYArgwAJnA8OADuUMAwMFg0cKgYAFwo6NgeAAYIkj782UrcdgByYSCxUB4AlAA0ga1tbcG+pXA0NXVNxXAcZfbVtVj1ze3TM50+wz19EwM+AF4jFWN1jTO7rXNr2b3jUJK4DXuXV-6duPkNRiZm8ACC1jmYWF6KeC35aLBgKgGAAeBQAPnuV06T3McBeZScrncIKK13R1wO3QUDjAMGApmBYK2E3BKwxFNmIXmiLxBJoRIUJKgZMGlPZQWpcHWilx+MJoKZSxZbI5Yp8t3Bj1McIAQu8AXkkJZcH8ANZYDgQAiKKHomEy+CysoAVRo9JBAG1ReKOQcFAAZJITIlkCSs222+1OlJQV0cMgez1i73Ov2gsirQM24MYzoAXSlxkNcAAwgrcl9lb84PlLAAyeRxI7CvB6zmhFOpsoASVEE2wKMtOJcbhgqJjscxXLg2OZAG5O13LgchmUB0Ph7tRzyhSdB1OKZKWi3ke20Yv9T3i4oJ5ut3hwYmjEA)
11231127
11241128
```typescript
11251129
const T = Type.Object({ // could be written as: Parse(`{
@@ -1140,12 +1144,13 @@ const B = Parse({ T }, `keyof T`) // const B: TUnion<[
11401144
// TLiteral<'z'>
11411145
// ]>
11421146

1143-
const C = Parse({ T }, `T & { w: number }`) // const C: TObject<{
1144-
// x: TNumber,
1145-
// y: TNumber,
1146-
// z: TNumber,
1147-
// w: TNumber
1148-
// }>
1147+
const C = Parse({ T }, `T & { w: number }`) // const C: TIntersect<[TObject<{
1148+
// x: TNumber;
1149+
// y: TNumber;
1150+
// z: TNumber;
1151+
// }>, TObject<{
1152+
// w: TNumber;
1153+
// }>]>
11491154

11501155

11511156
```
@@ -1156,18 +1161,20 @@ const C = Parse({ T }, `T & { w: number }`) // const C: TObject<{
11561161
11571162
TypeBox provides two Static types for inferring TypeScript syntax directly from strings.
11581163
1164+
[TypeScript Link Here](https://www.typescriptlang.org/play/?moduleResolution=99&module=199#code/JYWwDg9gTgLgBAbzgZRgQxsAxgBTVAZwFMBBA5LACyJDQBoV1Nd9iyAVATzCLgF84AMygQQcAOQABAsAB2WADZpgUAPQxuRAEYQAHqoKdZ6XeLgAoc6tVwA6sAUK4cwUShw0BD3HYVqtSw0eFDgAXkYMbDxCUnIqGjQAHgQ+BgADJF0ALjhZAFcQLTd+NIA+OArrOCDeZBz2AHktACsiLBhk8wrunt6+-oHBgaqK7J8AOQKiqC6hufmF3qq+Ussq+0dnWVd3T28awM0fMIjmaLYCLh5k1LgMuDH8wuK+MqWbGuPwhFnFv--3qMck9pr8AeDFiM4EA)
1165+
11591166
```typescript
11601167
import { StaticParseAsSchema, StaticParseAsType } from '@sinclair/typebox/syntax'
11611168

11621169
// Will infer as a TSchema
11631170

1164-
type S = StaticParseAsSchema<`{ x: number }`> // type S: TObject<{
1171+
type S = StaticParseAsSchema<{}, `{ x: number }`> // type S: TObject<{
11651172
// x: TNumber
11661173
// }>
11671174

11681175
// Will infer as a type
11691176

1170-
type T = StaticParseAsType<`{ x: number }`> // type T = {
1177+
type T = StaticParseAsType<{}, `{ x: number }`> // type T = {
11711178
// x: number
11721179
//
11731180
```

0 commit comments

Comments
 (0)