You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: readme.md
+19-12Lines changed: 19 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -79,7 +79,7 @@ License MIT
79
79
- [Unsafe](#types-unsafe)
80
80
- [Syntax](#syntax)
81
81
- [Parse](#syntax-parse)
82
-
- [Param](#syntax-param)
82
+
- [Context](#syntax-context)
83
83
- [Static](#syntax-static)
84
84
- [Limits](#syntax-limits)
85
85
- [Values](#values)
@@ -1100,6 +1100,8 @@ import { Parse } from '@sinclair/typebox/syntax'
1100
1100
1101
1101
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.
1102
1102
1103
+
[TypeScript Link Here](https://www.typescriptlang.org/play/?moduleResolution=99&module=199#code/JYWwDg9gTgLgBAbzgBQIZQM4FM4F84BmUEIcA5AAIbAB2AxgDarBQD0MAnmFgEYQAerDBxoxU-MgChJdCDQzwAgnAC8KdNgAUZBVFoBzMgEo4ps+YuXLrVnFnylALjgAVAMow9NfdPsK4AEKq6phY2gDaAIwANHAATLEAzAC6xlbpGTZ2cv4Bzi4uAK5gDFgAPOGSGdU1tdVZpi4AMsAwWFCoDGWRAHzRVXWDQ5m2jS1tHV1xfQPDc3MNruPtnWWJPbPzW7VZyRsyOfAAwsFooZoABkj8zjSFIDztsRy3949QeBcm6Vl+x-kAeR4ACssHQYGUEJttjCrIsbq4AHJvdrQ2Ho0yLF5IlFQNEY2FZXD7IA)
1104
+
1103
1105
```typescript
1104
1106
constA=Parse('string') // const A: TString
1105
1107
@@ -1115,11 +1117,13 @@ const C = Parse(`{ x: number, y: number }`) // const C: TObject<{
1115
1117
// }>
1116
1118
```
1117
1119
1118
-
<a name='syntax-param'></a>
1120
+
<a name='syntax-context'></a>
1121
+
1122
+
### Context
1119
1123
1120
-
### Param
1124
+
The Parse function accepts an optional context parameter that enables external types to be referenced within the syntax.
1121
1125
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)
1123
1127
1124
1128
```typescript
1125
1129
constT=Type.Object({ // could be written as: Parse(`{
@@ -1140,12 +1144,13 @@ const B = Parse({ T }, `keyof T`) // const B: TUnion<[
1140
1144
// TLiteral<'z'>
1141
1145
// ]>
1142
1146
1143
-
constC=Parse({ T }, `T & { w: number }`) // const C: TObject<{
1144
-
// x: TNumber,
1145
-
// y: TNumber,
1146
-
// z: TNumber,
1147
-
// w: TNumber
1148
-
// }>
1147
+
constC=Parse({ T }, `T & { w: number }`) // const C: TIntersect<[TObject<{
1148
+
// x: TNumber;
1149
+
// y: TNumber;
1150
+
// z: TNumber;
1151
+
// }>, TObject<{
1152
+
// w: TNumber;
1153
+
// }>]>
1149
1154
1150
1155
1151
1156
```
@@ -1156,18 +1161,20 @@ const C = Parse({ T }, `T & { w: number }`) // const C: TObject<{
1156
1161
1157
1162
TypeBox provides two Static types for inferring TypeScript syntax directly from strings.
1158
1163
1164
+
[TypeScript Link Here](https://www.typescriptlang.org/play/?moduleResolution=99&module=199#code/JYWwDg9gTgLgBAbzgZRgQxsAxgBTVAZwFMBBA5LACyJDQBoV1Nd9iyAVATzCLgF84AMygQQcAOQABAsAB2WADZpgUAPQxuRAEYQAHqoKdZ6XeLgAoc6tVwA6sAUK4cwUShw0BD3HYVqtSw0eFDgAXkYMbDxCUnIqGjQAHgQ+BgADJF0ALjhZAFcQLTd+NIA+OArrOCDeZBz2AHktACsiLBhk8wrunt6+-oHBgaqK7J8AOQKiqC6hufmF3qq+Ussq+0dnWVd3T28awM0fMIjmaLYCLh5k1LgMuDH8wuK+MqWbGuPwhFnFv--3qMck9pr8AeDFiM4EA)
0 commit comments