(kind ast.Kind)
| 3203 | } |
| 3204 | |
| 3205 | func (p *Parser) parseSignatureMember(kind ast.Kind) *ast.Node { |
| 3206 | pos := p.nodePos() |
| 3207 | jsdoc := p.jsdocScannerInfo() |
| 3208 | if kind == ast.KindConstructSignature { |
| 3209 | p.parseExpected(ast.KindNewKeyword) |
| 3210 | } |
| 3211 | typeParameters := p.parseTypeParameters() |
| 3212 | parameters := p.parseParameters(ParseFlagsType) |
| 3213 | typeNode := p.parseReturnType(ast.KindColonToken /*isType*/, true) |
| 3214 | p.parseTypeMemberSemicolon() |
| 3215 | var result *ast.Node |
| 3216 | if kind == ast.KindCallSignature { |
| 3217 | result = p.factory.NewCallSignatureDeclaration(typeParameters, parameters, typeNode) |
| 3218 | } else { |
| 3219 | result = p.factory.NewConstructSignatureDeclaration(typeParameters, parameters, typeNode) |
| 3220 | } |
| 3221 | p.finishNode(result, pos) |
| 3222 | p.withJSDoc(result, jsdoc) |
| 3223 | return result |
| 3224 | } |
| 3225 | |
| 3226 | func (p *Parser) parseTypeParameters() *ast.NodeList { |
| 3227 | if p.token == ast.KindLessThanToken { |
no test coverage detected