MCPcopy Create free account
hub / github.com/microsoft/typescript-go / parsePropertyDeclaration

Method parsePropertyDeclaration

internal/parser/parser.go:1970–1982  ·  view source on GitHub ↗
(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList, name *ast.Node, questionToken *ast.Node)

Source from the content-addressed store, hash-verified

1968}
1969
1970func (p *Parser) parsePropertyDeclaration(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList, name *ast.Node, questionToken *ast.Node) *ast.Node {
1971 postfixToken := questionToken
1972 if postfixToken == nil && !p.hasPrecedingLineBreak() {
1973 postfixToken = p.parseOptionalToken(ast.KindExclamationToken)
1974 }
1975 typeNode := p.parseTypeAnnotation()
1976 initializer := doInContext(p, ast.NodeFlagsYieldContext|ast.NodeFlagsAwaitContext|ast.NodeFlagsDisallowInContext, false, (*Parser).parseInitializer)
1977 p.parseSemicolonAfterPropertyName(name, typeNode, initializer)
1978 result := p.finishNode(p.factory.NewPropertyDeclaration(modifiers, name, postfixToken, typeNode, initializer), pos)
1979 p.withJSDoc(result, jsdoc)
1980 p.checkJSSyntax(result)
1981 return result
1982}
1983
1984func (p *Parser) parseSemicolonAfterPropertyName(name *ast.Node, typeNode *ast.TypeNode, initializer *ast.Expression) {
1985 if p.token == ast.KindAtToken && !p.hasPrecedingLineBreak() {

Callers 2

parseClassElementMethod · 0.95

Calls 9

hasPrecedingLineBreakMethod · 0.95
parseOptionalTokenMethod · 0.95
parseTypeAnnotationMethod · 0.95
finishNodeMethod · 0.95
withJSDocMethod · 0.95
checkJSSyntaxMethod · 0.95
doInContextFunction · 0.85

Tested by

no test coverage detected