Generic function type aliases

This commit is contained in:
dcodeIO
2018-03-12 17:44:09 +01:00
parent 423533c6b0
commit 7870e3ac18
14 changed files with 380 additions and 470 deletions

View File

@ -902,6 +902,7 @@ export abstract class Node {
static createTypeDeclaration(
name: IdentifierExpression,
typeParameters: TypeParameterNode[] | null,
alias: CommonTypeNode,
modifiers: ModifierNode[] | null,
decorators: DecoratorNode[] | null,
@ -910,7 +911,8 @@ export abstract class Node {
var stmt = new TypeDeclaration();
stmt.range = range;
stmt.name = name; name.parent = stmt;
stmt.alias = alias; alias.parent = stmt;
stmt.typeParameters = typeParameters; if (typeParameters) setParent(typeParameters, stmt);
stmt.type = alias; alias.parent = stmt;
stmt.modifiers = modifiers; if (modifiers) setParent(modifiers, stmt);
stmt.decorators = decorators; if (decorators) setParent(decorators, stmt);
return stmt;
@ -1728,8 +1730,10 @@ export class TryStatement extends Statement {
export class TypeDeclaration extends DeclarationStatement {
kind = NodeKind.TYPEDECLARATION;
/** Type parameters, if any. */
typeParameters: TypeParameterNode[] | null;
/** Type being aliased. */
alias: CommonTypeNode;
type: CommonTypeNode;
}
/** Represents a variable declaration part of a {@link VariableStatement}. */