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

Method getArrayElementTypeNode

internal/checker/checker.go:24093–24111  ·  view source on GitHub ↗
(node *ast.Node)

Source from the content-addressed store, hash-verified

24091}
24092
24093func (c *Checker) getArrayElementTypeNode(node *ast.Node) *ast.Node {
24094 switch node.Kind {
24095 case ast.KindParenthesizedType:
24096 return c.getArrayElementTypeNode(node.Type())
24097 case ast.KindTupleType:
24098 if len(node.Elements()) == 1 {
24099 node = node.Elements()[0]
24100 if node.Kind == ast.KindRestType {
24101 return c.getArrayElementTypeNode(node.Type())
24102 }
24103 if node.Kind == ast.KindNamedTupleMember && node.AsNamedTupleMember().DotDotDotToken != nil {
24104 return c.getArrayElementTypeNode(node.Type())
24105 }
24106 }
24107 case ast.KindArrayType:
24108 return node.AsArrayTypeNode().ElementType
24109 }
24110 return nil
24111}
24112
24113func (c *Checker) getTypeFromOptionalTypeNode(node *ast.Node) *Type {
24114 return c.addOptionalityEx(c.getTypeFromTypeNode(node.Type()), true /*isProperty*/, true /*isOptional*/)

Callers 3

getTupleElementFlagsMethod · 0.95

Calls 5

lenFunction · 0.85
AsNamedTupleMemberMethod · 0.80
AsArrayTypeNodeMethod · 0.80
TypeMethod · 0.45
ElementsMethod · 0.45

Tested by

no test coverage detected