Ensure no-overlap between Flow and TS node types (#710)

This commit is contained in:
James Kyle 2017-09-26 05:42:33 +10:00 committed by Henry Zhu
parent a4acf2da6d
commit d9766932db
89 changed files with 412 additions and 363 deletions

View File

@ -256,8 +256,8 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.finishNode(node, "TSTypeQuery");
}
tsParseTypeParameter(): N.TypeParameter {
const node: N.TypeParameter = this.startNode();
tsParseTypeParameter(): N.TsTypeParameter {
const node: N.TsTypeParameter = this.startNode();
node.name = this.parseIdentifierName(node.start);
if (this.eat(tt._extends)) {
node.constraint = this.tsParseType();
@ -267,17 +267,17 @@ export default (superClass: Class<Parser>): Class<Parser> =>
node.default = this.tsParseType();
}
return this.finishNode(node, "TypeParameter");
return this.finishNode(node, "TSTypeParameter");
}
tsTryParseTypeParameters(): ?N.TypeParameterDeclaration {
tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {
if (this.isRelational("<")) {
return this.tsParseTypeParameters();
}
}
tsParseTypeParameters() {
const node: N.TypeParameterDeclaration = this.startNode();
const node: N.TsTypeParameterDeclaration = this.startNode();
if (this.isRelational("<") || this.match(tt.jsxTagStart)) {
this.next();
@ -291,7 +291,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
/* bracket */ false,
/* skipFirstToken */ true,
);
return this.finishNode(node, "TypeParameterDeclaration");
return this.finishNode(node, "TSTypeParameterDeclaration");
}
// Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,
@ -460,12 +460,12 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.match(tt._in);
}
tsParseMappedTypeParameter(): N.TypeParameter {
const node: N.TypeParameter = this.startNode();
tsParseMappedTypeParameter(): N.TsTypeParameter {
const node: N.TsTypeParameter = this.startNode();
node.name = this.parseIdentifierName(node.start);
this.expect(tt._in);
node.constraint = this.tsParseType();
return this.finishNode(node, "TypeParameter");
return this.finishNode(node, "TSTypeParameter");
}
tsParseMappedType(): N.TsMappedType {
@ -719,8 +719,8 @@ export default (superClass: Class<Parser>): Class<Parser> =>
tsParseTypeOrTypePredicateAnnotation(
returnToken: TokenType,
): N.TypeAnnotation {
const t: N.TypeAnnotation = this.startNode();
): N.TsTypeAnnotation {
const t: N.TsTypeAnnotation = this.startNode();
this.expect(returnToken);
const typePredicateVariable =
@ -739,16 +739,16 @@ export default (superClass: Class<Parser>): Class<Parser> =>
node.parameterName = typePredicateVariable;
node.typeAnnotation = type;
t.typeAnnotation = this.finishNode(node, "TSTypePredicate");
return this.finishNode(t, "TypeAnnotation");
return this.finishNode(t, "TSTypeAnnotation");
}
tsTryParseTypeOrTypePredicateAnnotation(): ?N.TypeAnnotation {
tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {
return this.match(tt.colon)
? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)
: undefined;
}
tsTryParseTypeAnnotation(): ?N.TypeAnnotation {
tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {
return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;
}
@ -766,11 +766,11 @@ export default (superClass: Class<Parser>): Class<Parser> =>
tsParseTypeAnnotation(
eatColon = true,
t: N.TypeAnnotation = this.startNode(),
): N.TypeAnnotation {
t: N.TsTypeAnnotation = this.startNode(),
): N.TsTypeAnnotation {
if (eatColon) this.expect(tt.colon);
t.typeAnnotation = this.tsParseType();
return this.finishNode(t, "TypeAnnotation");
return this.finishNode(t, "TSTypeAnnotation");
}
tsParseType(): N.TsType {
@ -799,9 +799,9 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.finishNode(node, "TSTypeAssertion");
}
tsTryParseTypeArgumentsInExpression(): ?N.TypeParameterInstantiation {
tsTryParseTypeArgumentsInExpression(): ?N.TsTypeParameterInstantiation {
return this.tsTryParseAndCatch(() => {
const res: N.TypeParameterInstantiation = this.startNode();
const res: N.TsTypeParameterInstantiation = this.startNode();
this.expectRelational("<");
const typeArguments = this.tsParseDelimitedList(
"TypeParametersOrArguments",
@ -809,7 +809,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
);
this.expectRelational(">");
res.params = typeArguments;
this.finishNode(res, "TypeParameterInstantiation");
this.finishNode(res, "TSTypeParameterInstantiation");
this.expect(tt.parenL);
return res;
});
@ -1180,7 +1180,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return this.finishNode(res, "ArrowFunctionExpression");
}
tsParseTypeArguments(): N.TypeParameterInstantiation {
tsParseTypeArguments(): N.TsTypeParameterInstantiation {
const node = this.startNode();
this.expectRelational("<");
node.params = this.tsParseDelimitedList(
@ -1188,7 +1188,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
this.tsParseType.bind(this),
);
this.expectRelational(">");
return this.finishNode(node, "TypeParameterInstantiation");
return this.finishNode(node, "TSTypeParameterInstantiation");
}
// ======================================================
@ -1587,14 +1587,14 @@ export default (superClass: Class<Parser>): Class<Parser> =>
}
if (this.match(tt.colon)) {
const typeCastNode: N.TypeCastExpression = this.startNodeAt(
const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(
startPos,
startLoc,
);
typeCastNode.expression = node;
typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();
return this.finishNode(typeCastNode, "TypeCastExpression");
return this.finishNode(typeCastNode, "TSTypeCastExpression");
}
return node;
@ -1751,7 +1751,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
// Either way, we're looking at a '<': tt.jsxTagStart or relational.
let arrowExpression;
let typeParameters: N.TypeParameterDeclaration;
let typeParameters: N.TsTypeParameterDeclaration;
const state = this.state.clone();
try {
// This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.
@ -1849,7 +1849,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
contextDescription: string,
): N.Node {
switch (node.type) {
case "TypeCastExpression":
case "TSTypeCastExpression":
return super.toAssignable(
this.typeCastToParameter(node),
isBinding,
@ -1869,7 +1869,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
contextDescription: string,
): void {
switch (expr.type) {
case "TypeCastExpression":
case "TSTypeCastExpression":
// Allow "typecasts" to appear on the left of assignment expressions,
// because it may be in an arrow function.
// e.g. `const f = (foo: number = 0) => foo;`
@ -1945,14 +1945,14 @@ export default (superClass: Class<Parser>): Class<Parser> =>
): $ReadOnlyArray<N.Pattern> {
for (let i = 0; i < exprList.length; i++) {
const expr = exprList[i];
if (expr && expr.type === "TypeCastExpression") {
if (expr && expr.type === "TSTypeCastExpression") {
exprList[i] = this.typeCastToParameter(expr);
}
}
return super.toAssignableList(exprList, isBinding, contextDescription);
}
typeCastToParameter(node: N.TypeCastExpression): N.Node {
typeCastToParameter(node: N.TsTypeCastExpression): N.Node {
node.expression.typeAnnotation = node.typeAnnotation;
return this.finishNodeAt(
@ -1968,7 +1968,11 @@ export default (superClass: Class<Parser>): Class<Parser> =>
): $ReadOnlyArray<?N.Expression> {
for (let i = 0; i < exprList.length; i++) {
const expr = exprList[i];
if (expr && expr._exprListItem && expr.type === "TypeCastExpression") {
if (
expr &&
expr._exprListItem &&
expr.type === "TsTypeCastExpression"
) {
this.raise(expr.start, "Did not expect a type annotation here.");
}
}

View File

@ -157,8 +157,8 @@ export type BodilessFunctionOrMethodBase = HasDecorators & {
// TODO: All not in spec
expression: boolean,
typeParameters?: ?TypeParameterDeclaration,
returnType?: ?TypeAnnotation,
typeParameters?: ?TypeParameterDeclarationBase,
returnType?: ?TypeAnnotationBase,
};
export type BodilessFunctionBase = BodilessFunctionOrMethodBase & {
@ -524,7 +524,7 @@ export type ConditionalExpression = NodeBase & {
export type CallOrNewBase = NodeBase & {
callee: Expression | Super | Import,
arguments: Array<Expression | SpreadElement>, // TODO: $ReadOnlyArray
typeParameters?: ?TypeParameterInstantiation, // TODO: Not in spec
typeParameters?: ?TypeParameterInstantiationBase, // TODO: Not in spec
};
export type CallExpression = CallOrNewBase & {
@ -572,7 +572,7 @@ export type Accessibility = "public" | "protected" | "private";
export type PatternBase = HasDecorators & {
// TODO: All not in spec
// Flow/TypeScript only:
typeAnnotation?: ?TypeAnnotation,
typeAnnotation?: ?TypeAnnotationBase,
};
export type AssignmentProperty = ObjectProperty & {
@ -611,8 +611,8 @@ export type ClassBase = HasDecorators & {
decorators: $ReadOnlyArray<Decorator>,
// TODO: All not in spec
typeParameters?: ?TypeParameterDeclaration,
superTypeParameters?: ?TypeParameterInstantiation,
typeParameters?: ?TypeParameterDeclarationBase,
superTypeParameters?: ?TypeParameterInstantiationBase,
implements?:
| ?$ReadOnlyArray<TsExpressionWithTypeArguments>
| $ReadOnlyArray<FlowClassImplements>,
@ -677,7 +677,7 @@ export type ClassProperty = ClassMemberBase & {
key: Expression,
value: ?Expression, // TODO: Not in spec that this is nullable.
typeAnnotation?: ?TypeAnnotation, // TODO: Not in spec
typeAnnotation?: ?TypeAnnotationBase, // TODO: Not in spec
variance?: ?FlowVariance, // TODO: Not in spec
// TypeScript only: (TODO: Not in spec)
@ -799,36 +799,81 @@ export type JSXElement = Node;
// Flow/TypeScript common (TODO: Not in spec)
export type TypeAnnotation = NodeBase & {
type: "TypeAnnotation",
typeAnnotation: TsType | FlowTypeAnnotation,
export type TypeAnnotationBase = NodeBase & {
typeAnnotation: Node,
};
export type TypeParameterDeclaration = NodeBase & {
export type TypeAnnotation = NodeBase & {
type: "TypeAnnotation",
typeAnnotation: FlowTypeAnnotation,
};
export type TsTypeAnnotation = NodeBase & {
type: "TSTypeAnnotation",
typeAnnotation: TsType,
};
export type TypeParameterDeclarationBase = NodeBase & {
params: $ReadOnlyArray<TypeParameterBase>,
};
export type TypeParameterDeclaration = TypeParameterDeclarationBase & {
type: "TypeParameterDeclaration",
params: $ReadOnlyArray<TypeParameter>,
};
export type TypeParameter = NodeBase & {
type: "TypeParameter",
export type TsTypeParameterDeclaration = TypeParameterDeclarationBase & {
type: "TsTypeParameterDeclaration",
params: $ReadOnlyArray<TsTypeParameter>,
};
export type TypeParameterBase = NodeBase & {
name: string,
};
export type TypeParameter = TypeParameterBase & {
type: "TypeParameter",
};
export type TsTypeParameter = TypeParameterBase & {
type: "TSTypeParameter",
constraint?: TsType,
default?: TsType,
};
export type TypeParameterInstantiation = NodeBase & {
export type TypeParameterInstantiationBase = NodeBase & {
params: $ReadOnlyArray<Node>,
};
export type TypeParameterInstantiation = TypeParameterInstantiationBase & {
type: "TypeParameterInstantiation",
params: $ReadOnlyArray<TsType> | $ReadOnlyArray<FlowType>,
params: $ReadOnlyArray<FlowType>,
};
export type TsTypeParameterInstantiation = TypeParameterInstantiationBase & {
type: "TSTypeParameterInstantiation",
params: $ReadOnlyArray<TsType>,
};
// Flow (TODO: Not in spec)
export type TypeCastExpressionBase = NodeBase & {
expression: Expression,
typeAnnotation: TypeAnnotationBase,
};
export type TypeCastExpression = NodeBase & {
type: "TypeCastExpression",
expression: Expression,
typeAnnotation: TypeAnnotation,
};
export type TsTypeCastExpression = NodeBase & {
type: "TSTypeCastExpression",
expression: Expression,
typeAnnotation: TsTypeAnnotation,
};
export type FlowType = Node;
export type FlowPredicate = Node;
export type FlowDeclare = Node;
@ -934,11 +979,11 @@ export type TsSignatureDeclaration =
export type TsSignatureDeclarationOrIndexSignatureBase = NodeBase & {
// Not using TypeScript's "ParameterDeclaration" here, since it's inconsistent with regular functions.
parameters: $ReadOnlyArray<Identifier | RestElement>,
typeAnnotation: ?TypeAnnotation,
typeAnnotation: ?TsTypeAnnotation,
};
export type TsSignatureDeclarationBase = TsSignatureDeclarationOrIndexSignatureBase & {
typeParameters: ?TypeParameterDeclaration,
typeParameters: ?TsTypeParameterDeclaration,
};
// ================
@ -971,7 +1016,7 @@ export type TsNamedTypeElementBase = NodeBase & {
export type TsPropertySignature = TsNamedTypeElementBase & {
type: "TSPropertySignature",
readonly?: true,
typeAnnotation?: TypeAnnotation,
typeAnnotation?: TsTypeAnnotation,
initializer?: Expression,
};
@ -1041,19 +1086,19 @@ export type TsFunctionType = TsTypeBase &
export type TsConstructorType = TsTypeBase &
TsSignatureDeclarationBase & {
type: "TSConstructorType",
typeAnnotation: TypeAnnotation,
typeAnnotation: TsTypeAnnotation,
};
export type TsTypeReference = TsTypeBase & {
type: "TSTypeReference",
typeName: TsEntityName,
typeParameters?: TypeParameterInstantiation,
typeParameters?: TsTypeParameterInstantiation,
};
export type TsTypePredicate = TsTypeBase & {
type: "TSTypePredicate",
parameterName: Identifier | TsThisType,
typeAnnotation: TypeAnnotation,
typeAnnotation: TsTypeAnnotation,
};
// `typeof` operator
@ -1111,7 +1156,7 @@ export type TsIndexedAccessType = TsTypeBase & {
export type TsMappedType = TsTypeBase & {
type: "TSMappedType",
readonly?: true,
typeParameter: TypeParameter,
typeParameter: TsTypeParameter,
optional?: true,
typeAnnotation: ?TsType,
};
@ -1128,7 +1173,7 @@ export type TsLiteralType = TsTypeBase & {
export type TsInterfaceDeclaration = DeclarationBase & {
type: "TSInterfaceDeclaration",
id: Identifier,
typeParameters: ?TypeParameterDeclaration,
typeParameters: ?TsTypeParameterDeclaration,
// TS uses "heritageClauses", but want this to resemble ClassBase.
extends?: $ReadOnlyArray<TsExpressionWithTypeArguments>,
body: TSInterfaceBody,
@ -1142,13 +1187,13 @@ export type TSInterfaceBody = NodeBase & {
export type TsExpressionWithTypeArguments = TsTypeBase & {
type: "TSExpressionWithTypeArguments",
expression: TsEntityName,
typeParameters?: TypeParameterInstantiation,
typeParameters?: TsTypeParameterInstantiation,
};
export type TsTypeAliasDeclaration = DeclarationBase & {
type: "TSTypeAliasDeclaration",
id: Identifier,
typeParameters: ?TypeParameterDeclaration,
typeParameters: ?TsTypeParameterDeclaration,
typeAnnotation: TsType,
};

View File

@ -57,7 +57,7 @@
}
},
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 11,
"end": 19,
"loc": {
@ -108,7 +108,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 2,
"end": 10,
"loc": {

View File

@ -157,7 +157,7 @@
},
"arguments": [],
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 16,
"end": 19,
"loc": {

View File

@ -57,7 +57,7 @@
}
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 6,
"end": 9,
"loc": {
@ -72,7 +72,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 7,
"end": 8,
"loc": {
@ -107,7 +107,7 @@
},
"name": "a",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 11,
"end": 14,
"loc": {
@ -156,7 +156,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 15,
"end": 18,
"loc": {

View File

@ -57,7 +57,7 @@
}
},
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 18,
"end": 23,
"loc": {
@ -109,7 +109,7 @@
"name": "x",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 9,
"end": 17,
"loc": {

View File

@ -92,7 +92,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 2,
"end": 10,
"loc": {

View File

@ -57,7 +57,7 @@
}
},
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 70,
"end": 73,
"loc": {
@ -125,7 +125,7 @@
},
"name": "a",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 66,
"end": 69,
"loc": {
@ -191,7 +191,7 @@
"name": "a"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 61,
"end": 64,
"loc": {
@ -206,7 +206,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 62,
"end": 63,
"loc": {

View File

@ -57,7 +57,7 @@
}
},
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 9,
"end": 12,
"loc": {
@ -125,7 +125,7 @@
},
"name": "a",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 8,
"loc": {
@ -191,7 +191,7 @@
"name": "a"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 0,
"end": 3,
"loc": {
@ -206,7 +206,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 1,
"end": 2,
"loc": {

View File

@ -57,7 +57,7 @@
}
},
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 12,
"end": 17,
"loc": {
@ -109,7 +109,7 @@
"name": "x",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 3,
"end": 11,
"loc": {

View File

@ -57,7 +57,7 @@
}
},
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 8,
"end": 21,
"loc": {
@ -102,7 +102,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 15,
"end": 21,
"loc": {
@ -155,7 +155,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 2,
"end": 7,
"loc": {

View File

@ -131,7 +131,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 27,
"end": 35,
"loc": {
@ -178,7 +178,7 @@
},
"name": "y",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 38,
"end": 46,
"loc": {
@ -266,7 +266,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 66,
"end": 74,
"loc": {
@ -313,7 +313,7 @@
},
"name": "y",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 77,
"end": 85,
"loc": {
@ -401,7 +401,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 105,
"end": 110,
"loc": {
@ -448,7 +448,7 @@
},
"name": "y",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 113,
"end": 118,
"loc": {

View File

@ -107,7 +107,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 26,
"end": 32,
"loc": {
@ -139,7 +139,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 33,
"end": 38,
"loc": {
@ -238,7 +238,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 52,
"end": 60,
"loc": {
@ -349,7 +349,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 78,
"end": 84,
"loc": {

View File

@ -91,7 +91,7 @@
"arguments": []
},
"superTypeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 18,
"end": 21,
"loc": {
@ -204,7 +204,7 @@
}
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 36,
"end": 39,
"loc": {
@ -355,7 +355,7 @@
"arguments": []
},
"superTypeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 65,
"end": 68,
"loc": {
@ -468,7 +468,7 @@
}
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 83,
"end": 86,
"loc": {

View File

@ -91,7 +91,7 @@
"arguments": []
},
"superTypeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 18,
"end": 21,
"loc": {
@ -240,7 +240,7 @@
"arguments": []
},
"superTypeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 47,
"end": 50,
"loc": {

View File

@ -58,7 +58,7 @@
},
"id": null,
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 6,
"end": 9,
"loc": {
@ -73,7 +73,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 7,
"end": 8,
"loc": {
@ -159,7 +159,7 @@
"name": "C"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 23,
"end": 26,
"loc": {
@ -174,7 +174,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 24,
"end": 25,
"loc": {

View File

@ -122,7 +122,7 @@
}
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 21,
"end": 24,
"loc": {
@ -305,7 +305,7 @@
}
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 53,
"end": 56,
"loc": {

View File

@ -93,7 +93,7 @@
"arguments": []
},
"superTypeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 19,
"end": 22,
"loc": {
@ -206,7 +206,7 @@
}
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 37,
"end": 40,
"loc": {

View File

@ -93,7 +93,7 @@
"arguments": []
},
"superTypeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 19,
"end": 22,
"loc": {

View File

@ -60,7 +60,7 @@
"name": "C"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 7,
"end": 41,
"loc": {
@ -75,7 +75,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 8,
"end": 40,
"loc": {
@ -152,7 +152,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 30,
"end": 38,
"loc": {

View File

@ -110,7 +110,7 @@
},
"kind": "method",
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 25,
"end": 28,
"loc": {
@ -125,7 +125,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 26,
"end": 27,
"loc": {
@ -148,7 +148,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 30,
"end": 36,
"loc": {

View File

@ -125,7 +125,7 @@
}
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 22,
"end": 25,
"loc": {

View File

@ -107,7 +107,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 18,
"end": 24,
"loc": {
@ -139,7 +139,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 25,
"end": 30,
"loc": {
@ -202,7 +202,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 49,
"end": 55,
"loc": {
@ -234,7 +234,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 56,
"end": 61,
"loc": {

View File

@ -115,7 +115,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 22,
"end": 28,
"loc": {
@ -186,7 +186,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 49,
"end": 55,
"loc": {
@ -305,7 +305,7 @@
},
"kind": "method",
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 84,
"end": 87,
"loc": {
@ -320,7 +320,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 85,
"end": 86,
"loc": {
@ -343,7 +343,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 89,
"end": 95,
"loc": {

View File

@ -116,7 +116,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 29,
"end": 35,
"loc": {

View File

@ -148,7 +148,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 33,
"end": 39,
"loc": {
@ -252,7 +252,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 65,
"end": 71,
"loc": {

View File

@ -110,7 +110,7 @@
},
"kind": "method",
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 15,
"end": 18,
"loc": {
@ -125,7 +125,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 16,
"end": 17,
"loc": {
@ -164,7 +164,7 @@
},
"name": "a",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 20,
"end": 23,
"loc": {
@ -229,7 +229,7 @@
"name": "b",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 27,
"end": 30,
"loc": {
@ -308,7 +308,7 @@
"name": "c"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 36,
"end": 41,
"loc": {
@ -372,7 +372,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 42,
"end": 45,
"loc": {
@ -504,7 +504,7 @@
},
"kind": "method",
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 70,
"end": 73,
"loc": {
@ -519,7 +519,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 71,
"end": 72,
"loc": {
@ -542,7 +542,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 75,
"end": 78,
"loc": {

View File

@ -155,7 +155,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 26,
"end": 32,
"loc": {

View File

@ -116,7 +116,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 18,
"end": 24,
"loc": {

View File

@ -115,7 +115,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 17,
"end": 23,
"loc": {

View File

@ -148,7 +148,7 @@
},
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 51,
"end": 59,
"loc": {

View File

@ -180,7 +180,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 41,
"end": 49,
"loc": {

View File

@ -179,7 +179,7 @@
},
"name": "pu",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 64,
"end": 72,
"loc": {
@ -277,7 +277,7 @@
"name": "pi",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 116,
"end": 124,
"loc": {
@ -477,7 +477,7 @@
"name": "y",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 239,
"end": 247,
"loc": {

View File

@ -180,7 +180,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 30,
"end": 38,
"loc": {
@ -245,7 +245,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 45,
"end": 53,
"loc": {

View File

@ -142,7 +142,7 @@
"computed": false
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 31,
"end": 39,
"loc": {
@ -241,7 +241,7 @@
},
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 63,
"end": 71,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 7,
"end": 15,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 15,
"end": 23,
"loc": {
@ -137,7 +137,7 @@
},
"name": "y",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 26,
"end": 34,
"loc": {

View File

@ -184,7 +184,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 22,
"end": 48,
"loc": {
@ -245,7 +245,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 27,
"end": 35,
"loc": {
@ -308,7 +308,7 @@
"name": "y"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 38,
"end": 46,
"loc": {

View File

@ -126,7 +126,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 28,
"end": 33,
"loc": {

View File

@ -90,7 +90,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 22,
"end": 30,
"loc": {
@ -179,7 +179,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 59,
"end": 65,
"loc": {

View File

@ -63,7 +63,7 @@
"expression": false,
"async": false,
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 10,
"end": 13,
"loc": {
@ -78,7 +78,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 11,
"end": 12,
"loc": {
@ -114,7 +114,7 @@
"name": "x",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 16,
"end": 19,
"loc": {
@ -163,7 +163,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 20,
"end": 23,
"loc": {

View File

@ -93,7 +93,7 @@
"expression": false,
"async": false,
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 18,
"end": 21,
"loc": {
@ -108,7 +108,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 19,
"end": 20,
"loc": {
@ -144,7 +144,7 @@
"name": "x",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 24,
"end": 27,
"loc": {
@ -193,7 +193,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 28,
"end": 31,
"loc": {

View File

@ -64,7 +64,7 @@
"async": false,
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 20,
"end": 26,
"loc": {
@ -130,7 +130,7 @@
"expression": false,
"async": false,
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 46,
"end": 49,
"loc": {
@ -145,7 +145,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 47,
"end": 48,
"loc": {
@ -164,7 +164,7 @@
},
"params": [],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 51,
"end": 54,
"loc": {

View File

@ -79,7 +79,7 @@
"name": "x",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 26,
"end": 34,
"loc": {
@ -111,7 +111,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 35,
"end": 41,
"loc": {

View File

@ -96,7 +96,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 19,
"end": 27,
"loc": {
@ -128,7 +128,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 28,
"end": 36,
"loc": {
@ -227,7 +227,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 57,
"end": 65,
"loc": {
@ -259,7 +259,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 66,
"end": 74,
"loc": {

View File

@ -80,7 +80,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 12,
"end": 17,
"loc": {
@ -112,7 +112,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 18,
"end": 32,
"loc": {
@ -157,7 +157,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 25,
"end": 32,
"loc": {
@ -256,7 +256,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 47,
"end": 52,
"loc": {
@ -288,7 +288,7 @@
}
],
"returnType": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 53,
"end": 67,
"loc": {
@ -333,7 +333,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 60,
"end": 67,
"loc": {

View File

@ -106,7 +106,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 20,
"end": 28,
"loc": {
@ -138,7 +138,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 29,
"end": 35,
"loc": {

View File

@ -106,7 +106,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 24,
"end": 32,
"loc": {
@ -138,7 +138,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 33,
"end": 39,
"loc": {

View File

@ -124,7 +124,7 @@
}
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 23,
"end": 26,
"loc": {

View File

@ -60,7 +60,7 @@
"name": "I"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 11,
"end": 45,
"loc": {
@ -75,7 +75,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 12,
"end": 44,
"loc": {
@ -152,7 +152,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 34,
"end": 42,
"loc": {

View File

@ -106,7 +106,7 @@
},
"name": "s",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 22,
"end": 28,
"loc": {
@ -138,7 +138,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 29,
"end": 37,
"loc": {

View File

@ -141,7 +141,7 @@
},
"parameters": [],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 37,
"end": 43,
"loc": {
@ -239,7 +239,7 @@
"optional": true,
"parameters": [],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 69,
"end": 77,
"loc": {

View File

@ -107,7 +107,7 @@
"name": "m"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 19,
"end": 53,
"loc": {
@ -122,7 +122,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 20,
"end": 52,
"loc": {
@ -199,7 +199,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 42,
"end": 50,
"loc": {
@ -236,7 +236,7 @@
},
"parameters": [],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 55,
"end": 58,
"loc": {

View File

@ -109,7 +109,7 @@
"optional": true,
"parameters": [],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 22,
"end": 28,
"loc": {

View File

@ -159,7 +159,7 @@
"name": "x",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 31,
"end": 39,
"loc": {
@ -221,7 +221,7 @@
"name": "y"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 45,
"end": 55,
"loc": {
@ -268,7 +268,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 56,
"end": 62,
"loc": {

View File

@ -108,7 +108,7 @@
},
"readonly": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 28,
"end": 36,
"loc": {

View File

@ -140,7 +140,7 @@
"name": "y"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 26,
"end": 34,
"loc": {
@ -204,7 +204,7 @@
},
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 42,
"end": 50,
"loc": {

View File

@ -140,7 +140,7 @@
"computed": false
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 35,
"end": 43,
"loc": {
@ -237,7 +237,7 @@
},
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 67,
"end": 75,
"loc": {

View File

@ -107,7 +107,7 @@
"name": "public"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 21,
"end": 29,
"loc": {

View File

@ -108,7 +108,7 @@
},
"parameters": [],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 25,
"end": 31,
"loc": {

View File

@ -107,7 +107,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 19,
"end": 27,
"loc": {
@ -170,7 +170,7 @@
"name": "y"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 30,
"end": 38,
"loc": {
@ -282,7 +282,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 59,
"end": 67,
"loc": {
@ -345,7 +345,7 @@
"name": "y"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 70,
"end": 78,
"loc": {
@ -457,7 +457,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 106,
"end": 114,
"loc": {
@ -520,7 +520,7 @@
"name": "y"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 120,
"end": 128,
"loc": {

View File

@ -120,7 +120,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 33,
"end": 41,
"loc": {

View File

@ -166,7 +166,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 55,
"end": 63,
"loc": {

View File

@ -170,7 +170,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 47,
"end": 55,
"loc": {

View File

@ -78,7 +78,7 @@
"name": "D"
},
"superTypeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 116,
"end": 119,
"loc": {

View File

@ -60,7 +60,7 @@
"name": "T"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 6,
"end": 40,
"loc": {
@ -75,7 +75,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 7,
"end": 39,
"loc": {
@ -152,7 +152,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 29,
"end": 37,
"loc": {
@ -219,7 +219,7 @@
"name": "Array"
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 48,
"end": 51,
"loc": {

View File

@ -60,7 +60,7 @@
"name": "T"
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 6,
"end": 9,
"loc": {
@ -75,7 +75,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 7,
"end": 8,
"loc": {

View File

@ -75,7 +75,7 @@
},
"arguments": [],
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 1,
"end": 4,
"loc": {
@ -172,7 +172,7 @@
},
"arguments": [],
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 9,
"end": 15,
"loc": {

View File

@ -74,7 +74,7 @@
"name": "C"
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 5,
"end": 8,
"loc": {
@ -171,7 +171,7 @@
"name": "C"
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 17,
"end": 23,
"loc": {

View File

@ -63,7 +63,7 @@
"expression": false,
"async": false,
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 10,
"end": 19,
"loc": {
@ -78,7 +78,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 13,
"end": 14,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "arr",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 7,
"end": 19,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "f",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 21,
"loc": {
@ -102,7 +102,7 @@
}
},
"typeParameters": {
"type": "TypeParameterDeclaration",
"type": "TSTypeParameterDeclaration",
"start": 7,
"end": 10,
"loc": {
@ -117,7 +117,7 @@
},
"params": [
{
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 8,
"end": 9,
"loc": {
@ -152,7 +152,7 @@
},
"name": "a",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 12,
"end": 15,
"loc": {
@ -201,7 +201,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 17,
"end": 21,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 24,
"loc": {
@ -119,7 +119,7 @@
"name": "Array"
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 12,
"end": 24,
"loc": {
@ -149,7 +149,7 @@
},
"parameters": [],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 16,
"end": 23,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "f",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 29,
"loc": {
@ -119,7 +119,7 @@
},
"name": "this",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 12,
"end": 20,
"loc": {
@ -151,7 +151,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 22,
"end": 29,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "f",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 54,
"loc": {
@ -119,7 +119,7 @@
},
"name": "a",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 9,
"end": 17,
"loc": {
@ -167,7 +167,7 @@
"name": "b",
"optional": true,
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 21,
"end": 29,
"loc": {
@ -229,7 +229,7 @@
"name": "c"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 35,
"end": 45,
"loc": {
@ -276,7 +276,7 @@
}
],
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 47,
"end": 54,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 11,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "a",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 10,
"loc": {
@ -155,7 +155,7 @@
},
"name": "b",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 17,
"end": 26,
"loc": {
@ -236,7 +236,7 @@
},
"name": "ne",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 34,
"end": 41,
"loc": {
@ -317,7 +317,7 @@
},
"name": "nul",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 50,
"end": 56,
"loc": {
@ -398,7 +398,7 @@
},
"name": "num",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 65,
"end": 73,
"loc": {
@ -479,7 +479,7 @@
},
"name": "o",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 80,
"end": 88,
"loc": {
@ -560,7 +560,7 @@
},
"name": "st",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 96,
"end": 104,
"loc": {
@ -641,7 +641,7 @@
},
"name": "sy",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 112,
"end": 120,
"loc": {
@ -722,7 +722,7 @@
},
"name": "u",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 127,
"end": 138,
"loc": {
@ -803,7 +803,7 @@
},
"name": "v",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 145,
"end": 151,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 11,
"loc": {
@ -171,7 +171,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 18,
"end": 25,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 9,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 8,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 12,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "map",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 7,
"end": 35,
"loc": {
@ -102,7 +102,7 @@
}
},
"typeParameter": {
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 12,
"end": 23,
"loc": {
@ -201,7 +201,7 @@
},
"name": "map",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 44,
"end": 82,
"loc": {
@ -230,7 +230,7 @@
},
"readonly": true,
"typeParameter": {
"type": "TypeParameter",
"type": "TSTypeParameter",
"start": 58,
"end": 69,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 27,
"loc": {
@ -119,7 +119,7 @@
"name": "Array"
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 12,
"end": 27,
"loc": {
@ -165,7 +165,7 @@
"name": "Array"
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 18,
"end": 26,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 20,
"loc": {
@ -119,7 +119,7 @@
"name": "Array"
},
"typeParameters": {
"type": "TypeParameterInstantiation",
"type": "TSTypeParameterInstantiation",
"start": 12,
"end": 20,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 8,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "obj",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 7,
"end": 22,
"loc": {
@ -135,7 +135,7 @@
"name": "x"
},
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 12,
"end": 20,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 14,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "x",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 5,
"end": 17,
"loc": {

View File

@ -74,7 +74,7 @@
},
"name": "union",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 9,
"end": 36,
"loc": {
@ -202,7 +202,7 @@
},
"name": "intersection",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 54,
"end": 71,
"loc": {
@ -315,7 +315,7 @@
},
"name": "precedence1",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 88,
"end": 115,
"loc": {
@ -460,7 +460,7 @@
},
"name": "precedence2",
"typeAnnotation": {
"type": "TypeAnnotation",
"type": "TSTypeAnnotation",
"start": 132,
"end": 159,
"loc": {