-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
/
spec.ts
29 lines (25 loc) · 1 KB
/
spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import type { AST_NODE_TYPES } from '../../ast-node-types';
import type { BaseNode } from '../../base/BaseNode';
import type { PrivateIdentifier } from '../../special/PrivateIdentifier/spec';
import type { Expression } from '../../unions/Expression';
import type { LeftHandSideExpression } from '../../unions/LeftHandSideExpression';
import type { Identifier } from '../Identifier/spec';
interface MemberExpressionBase extends BaseNode {
object: LeftHandSideExpression;
property: Expression | Identifier | PrivateIdentifier;
computed: boolean;
optional: boolean;
}
export interface MemberExpressionComputedName extends MemberExpressionBase {
type: AST_NODE_TYPES.MemberExpression;
property: Expression;
computed: true;
}
export interface MemberExpressionNonComputedName extends MemberExpressionBase {
type: AST_NODE_TYPES.MemberExpression;
property: Identifier | PrivateIdentifier;
computed: false;
}
export type MemberExpression =
| MemberExpressionComputedName
| MemberExpressionNonComputedName;