(node)
| 63150 | return getConditionalFlowTypeOfType(getTypeFromTypeNodeWorker(node), node); |
| 63151 | } |
| 63152 | function getTypeFromTypeNodeWorker(node) { |
| 63153 | switch (node.kind) { |
| 63154 | case 130 /* SyntaxKind.AnyKeyword */: |
| 63155 | case 312 /* SyntaxKind.JSDocAllType */: |
| 63156 | case 313 /* SyntaxKind.JSDocUnknownType */: |
| 63157 | return anyType; |
| 63158 | case 155 /* SyntaxKind.UnknownKeyword */: |
| 63159 | return unknownType; |
| 63160 | case 150 /* SyntaxKind.StringKeyword */: |
| 63161 | return stringType; |
| 63162 | case 147 /* SyntaxKind.NumberKeyword */: |
| 63163 | return numberType; |
| 63164 | case 158 /* SyntaxKind.BigIntKeyword */: |
| 63165 | return bigintType; |
| 63166 | case 133 /* SyntaxKind.BooleanKeyword */: |
| 63167 | return booleanType; |
| 63168 | case 151 /* SyntaxKind.SymbolKeyword */: |
| 63169 | return esSymbolType; |
| 63170 | case 114 /* SyntaxKind.VoidKeyword */: |
| 63171 | return voidType; |
| 63172 | case 153 /* SyntaxKind.UndefinedKeyword */: |
| 63173 | return undefinedType; |
| 63174 | case 104 /* SyntaxKind.NullKeyword */: |
| 63175 | // TODO(rbuckton): `NullKeyword` is no longer a `TypeNode`, but we defensively allow it here because of incorrect casts in the Language Service. |
| 63176 | return nullType; |
| 63177 | case 143 /* SyntaxKind.NeverKeyword */: |
| 63178 | return neverType; |
| 63179 | case 148 /* SyntaxKind.ObjectKeyword */: |
| 63180 | return node.flags & 262144 /* NodeFlags.JavaScriptFile */ && !noImplicitAny ? anyType : nonPrimitiveType; |
| 63181 | case 138 /* SyntaxKind.IntrinsicKeyword */: |
| 63182 | return intrinsicMarkerType; |
| 63183 | case 192 /* SyntaxKind.ThisType */: |
| 63184 | case 108 /* SyntaxKind.ThisKeyword */: |
| 63185 | // TODO(rbuckton): `ThisKeyword` is no longer a `TypeNode`, but we defensively allow it here because of incorrect casts in the Language Service and because of `isPartOfTypeNode`. |
| 63186 | return getTypeFromThisTypeNode(node); |
| 63187 | case 196 /* SyntaxKind.LiteralType */: |
| 63188 | return getTypeFromLiteralTypeNode(node); |
| 63189 | case 178 /* SyntaxKind.TypeReference */: |
| 63190 | return getTypeFromTypeReference(node); |
| 63191 | case 177 /* SyntaxKind.TypePredicate */: |
| 63192 | return node.assertsModifier ? voidType : booleanType; |
| 63193 | case 228 /* SyntaxKind.ExpressionWithTypeArguments */: |
| 63194 | return getTypeFromTypeReference(node); |
| 63195 | case 181 /* SyntaxKind.TypeQuery */: |
| 63196 | return getTypeFromTypeQueryNode(node); |
| 63197 | case 183 /* SyntaxKind.ArrayType */: |
| 63198 | case 184 /* SyntaxKind.TupleType */: |
| 63199 | return getTypeFromArrayOrTupleTypeNode(node); |
| 63200 | case 185 /* SyntaxKind.OptionalType */: |
| 63201 | return getTypeFromOptionalTypeNode(node); |
| 63202 | case 187 /* SyntaxKind.UnionType */: |
| 63203 | return getTypeFromUnionTypeNode(node); |
| 63204 | case 188 /* SyntaxKind.IntersectionType */: |
| 63205 | return getTypeFromIntersectionTypeNode(node); |
| 63206 | case 314 /* SyntaxKind.JSDocNullableType */: |
| 63207 | return getTypeFromJSDocNullableTypeNode(node); |
| 63208 | case 316 /* SyntaxKind.JSDocOptionalType */: |
| 63209 | return addOptionality(getTypeFromTypeNode(node.type)); |
no test coverage detected
searching dependent graphs…