Skip to content

Commit 72e511f

Browse files
authored
docs: the-book-of-ast: types
1 parent 3c7d332 commit 72e511f

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

docs/the-book-of-ast.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,9 @@ if (fruit === '🍎') // 🌳(🍎)
157157
<details><summary>🤿 deep dive</summary>
158158

159159
```ts
160-
function ArrayExpression(elements: null[] | Expression[] | SpreadElement[]);
161-
function ArrayPattern(elements: null[] | PatternLike[]): ArrayPattern;
160+
type ArrayExpression = (elements: null[] | Expression[] | SpreadElement[]) => Node;
161+
162+
type ArrayPattern = (elements: null[] | PatternLike[]) => Node;
162163
```
163164

164165
> Both `ArrayExpression` and `ArrayPattern` takes `properties`, both of which takes `ObjectProperty`, but
@@ -192,7 +193,7 @@ const [owl] = birds;
192193
<details><summary>🤿 deep dive</summary>
193194

194195
```ts
195-
type ObjectExpression(properties: ObjectMethod[] | ObjectProperty[] | SpreadElement[]) => Node;
196+
type ObjectExpression = (properties: ObjectMethod[] | ObjectProperty[] | SpreadElement[]) => Node;
196197

197198
type ObjectPattern = (properties: RestElement[] | ObjectProperty[]) => Node;
198199
```
@@ -227,8 +228,8 @@ And sayed, "Here is the other code I saw in the cloud, is it similar on any kind
227228
<details><summary>🤿 deep dive</summary>
228229

229230
```ts
230-
function SpreadElement(argument: Expression): SpreadElement;
231-
function RestElement(argument: Expression): RestElement;
231+
type SpreadElement = (argument: Expression) => Node;
232+
type RestElement = (argument: Expression) => Node;
232233
```
233234

234235
> [**Spread**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax) syntax (`...`) usually takes [`ArrayExpression`](#arrayexpression-and-arraypattern) or [`ObjectExpression`](#objectexpression-and-objectpattern) to be expanded in places where zero or more items are expected.

0 commit comments

Comments
 (0)