MCPcopy Index your code
hub / github.com/microsoft/typescript-go / emitTypeNode

Method emitTypeNode

internal/printer/printer.go:2274–2380  ·  view source on GitHub ↗
(node *ast.TypeNode, precedence ast.TypePrecedence)

Source from the content-addressed store, hash-verified

2272}
2273
2274func (p *Printer) emitTypeNode(node *ast.TypeNode, precedence ast.TypePrecedence) {
2275 if p.inExtends && precedence <= ast.TypePrecedenceConditional {
2276 // in the `extends` clause of a ConditionalType or InferType, a ConditionalType must be parenthesized
2277 precedence = ast.TypePrecedenceFunction
2278 }
2279
2280 savedInExtends := p.inExtends
2281 parens := ast.GetTypeNodePrecedence(node) < precedence
2282 if parens {
2283 p.inExtends = false
2284 p.writePunctuation("(")
2285 }
2286
2287 switch node.Kind {
2288 // Keyword Types
2289 case ast.KindAnyKeyword,
2290 ast.KindUnknownKeyword,
2291 ast.KindNumberKeyword,
2292 ast.KindBigIntKeyword,
2293 ast.KindObjectKeyword,
2294 ast.KindBooleanKeyword,
2295 ast.KindStringKeyword,
2296 ast.KindSymbolKeyword,
2297 ast.KindVoidKeyword,
2298 ast.KindUndefinedKeyword,
2299 ast.KindNeverKeyword,
2300 ast.KindIntrinsicKeyword:
2301 p.emitKeywordTypeNode(node.AsKeywordTypeNode())
2302
2303 // Types
2304 case ast.KindTypePredicate:
2305 p.emitTypePredicate(node.AsTypePredicateNode())
2306 case ast.KindTypeReference:
2307 p.emitTypeReference(node.AsTypeReferenceNode())
2308 case ast.KindFunctionType:
2309 p.emitFunctionType(node.AsFunctionTypeNode())
2310 case ast.KindConstructorType:
2311 p.emitConstructorType(node.AsConstructorTypeNode())
2312 case ast.KindTypeQuery:
2313 p.emitTypeQuery(node.AsTypeQueryNode())
2314 case ast.KindTypeLiteral:
2315 p.emitTypeLiteral(node.AsTypeLiteralNode())
2316 case ast.KindArrayType:
2317 p.emitArrayType(node.AsArrayTypeNode())
2318 case ast.KindTupleType:
2319 p.emitTupleType(node.AsTupleTypeNode())
2320 case ast.KindOptionalType:
2321 p.emitOptionalType(node.AsOptionalTypeNode())
2322 case ast.KindRestType:
2323 p.emitRestType(node.AsRestTypeNode())
2324 case ast.KindUnionType:
2325 p.emitUnionType(node.AsUnionTypeNode())
2326 case ast.KindIntersectionType:
2327 p.emitIntersectionType(node.AsIntersectionTypeNode())
2328 case ast.KindConditionalType:
2329 p.emitConditionalType(node.AsConditionalTypeNode())
2330 case ast.KindInferType:
2331 p.emitInferType(node.AsInferTypeNode())

Calls 15

writePunctuationMethod · 0.95
emitKeywordTypeNodeMethod · 0.95
emitTypePredicateMethod · 0.95
emitTypeReferenceMethod · 0.95
emitFunctionTypeMethod · 0.95
emitConstructorTypeMethod · 0.95
emitTypeQueryMethod · 0.95
emitTypeLiteralMethod · 0.95
emitArrayTypeMethod · 0.95
emitTupleTypeMethod · 0.95
emitOptionalTypeMethod · 0.95
emitRestTypeMethod · 0.95

Tested by

no test coverage detected