(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList)
| 2095 | } |
| 2096 | |
| 2097 | func (p *Parser) parseTypeAliasDeclaration(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList) *ast.Node { |
| 2098 | p.parseExpected(ast.KindTypeKeyword) |
| 2099 | if p.hasPrecedingLineBreak() { |
| 2100 | p.parseErrorAtCurrentToken(diagnostics.Line_break_not_permitted_here) |
| 2101 | } |
| 2102 | name := p.parseIdentifier() |
| 2103 | typeParameters := p.parseTypeParameters() |
| 2104 | p.parseExpected(ast.KindEqualsToken) |
| 2105 | var typeNode *ast.TypeNode |
| 2106 | if p.token == ast.KindIntrinsicKeyword && p.lookAhead((*Parser).nextIsNotDot) { |
| 2107 | typeNode = p.parseKeywordTypeNode() |
| 2108 | } else { |
| 2109 | typeNode = p.parseType() |
| 2110 | } |
| 2111 | p.parseSemicolon() |
| 2112 | result := p.finishNode(p.factory.NewTypeAliasDeclaration(modifiers, name, typeParameters, typeNode), pos) |
| 2113 | p.withJSDoc(result, jsdoc) |
| 2114 | p.checkJSSyntax(result) |
| 2115 | return result |
| 2116 | } |
| 2117 | |
| 2118 | func (p *Parser) nextIsNotDot() bool { |
| 2119 | return p.nextToken() != ast.KindDotToken |
no test coverage detected