66 lines
1.7 KiB
TypeScript

import type { BaseNode } from 'estree';
declare module 'eslint' {
namespace Rule {
interface RuleContext {
getSource(node: BaseNode): string;
}
}
}
declare module 'estree' {
interface BaseNodeWithoutComments {
parent?: Node;
}
interface NodeMap {
OptionalCallExpression: OptionalCallExpression;
OptionalMemberExpression: OptionalMemberExpression;
TSAsExpression: TSAsExpression;
TSTypeQuery: TSTypeQuery;
TSTypeReference: TSTypeReference;
TypeCastExpression: TypeCastExpression;
}
interface ExpressionMap {
OptionalCallExpression: OptionalCallExpression;
OptionalMemberExpression: OptionalMemberExpression;
TSAsExpression: TSAsExpression;
TypeCastExpression: TypeCastExpression;
}
interface AssignmentPattern {
computed?: boolean;
}
interface ChainExpression {
computed?: boolean;
}
interface TypeCastExpression extends BaseNode {
type: 'TypeCastExpression';
expression: Expression;
}
interface TSAsExpression extends BaseNode {
type: 'TSAsExpression';
expression: Expression;
}
interface TSTypeQuery extends BaseNode {
type: 'TSTypeQuery';
}
interface TSTypeReference extends BaseNode {
type: 'TSTypeReference';
}
/** @deprecated flow only */
interface TypeParameter extends BaseNode {
type: 'TypeParameter';
}
interface OptionalMemberExpression extends BaseNode {
type: 'OptionalMemberExpression';
object: Expression | Super;
property: Expression | PrivateIdentifier;
computed: boolean;
optional: boolean;
}
interface OptionalCallExpression extends BaseNode {
type: 'OptionalCallExpression';
callee: Expression | Super;
arguments: (Expression | SpreadElement)[];
}
}